From 8f7607ed7b32246cf2fba94e81d0f78c12b43cbc Mon Sep 17 00:00:00 2001 From: Samir Faci Date: Thu, 3 Oct 2024 17:38:31 -0400 Subject: [PATCH] Adding GH test --- .github/workflows/integration_tests.yml | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/integration_tests.yml diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml new file mode 100644 index 00000000..082587d2 --- /dev/null +++ b/.github/workflows/integration_tests.yml @@ -0,0 +1,67 @@ +name: Go + +on: + push: + branches: + - master + pull_request: + +env: + TEST_RESULTS: /tmp/test-results # path to where test results will be saved + + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + submodules: 'true' + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.21.6" + - name: Verify go version + run: go version + - name: Install GoTest + run: go install gotest.tools/gotestsum@latest + - name: Install jet generator + run: cd tests && make install-jet-gen + - name: Init database + run: | + cd tests + go run ./init/init.go -testsuite all + # to create test results report + - name: Install go-junit-report + run: go install github.com/jstemmer/go-junit-report@latest + - name: Setup Test Report Dir + run: mkdir -p $TEST_RESULTS + # this will run all tests and exclude test files from code coverage report + - name: Run Tests + run: | + go test -v ./... \ + -covermode=atomic \ + -coverpkg=github.com/go-jet/jet/v2/postgres/...,github.com/go-jet/jet/v2/mysql/...,github.com/go-jet/jet/v2/sqlite/...,github.com/go-jet/jet/v2/qrm/...,github.com/go-jet/jet/v2/generator/...,github.com/go-jet/jet/v2/internal/... \ + -coverprofile=cover.out 2>&1 | go-junit-report > $TEST_RESULTS/results.xml + + # run mariaDB and cockroachdb tests. No need to collect coverage, because coverage is already included with mysql and postgres tests + - name: Run MariaDB tests + run: MY_SQL_SOURCE=MariaDB go test -v ./tests/mysql/ + - name: Run cockroach DB + run: PG_SOURCE=COCKROACH_DB go test -v ./tests/postgres/ + - name: Archive code coverage results + uses: actions/upload-artifact@v4 + with: + name: code-coverage-report + path: $TEST_RESULTS/results.xml + - name: Store cover.out + uses: actions/upload-artifact@v4 + with: + name: cover.out + path: cover.out + - name: Store test-results + uses: actions/upload-artifact@v4 + with: + name: test-results + path: /tmp/test-results \ No newline at end of file