name: JDBC Tests on: [push, pull_request] jobs: run-babelfish-jdbc-tests: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 id: checkout - name: Install Dependencies id: install-dependencies if: always() uses: ./.github/composite-actions/install-dependencies - name: Build Modified Postgres id: build-modified-postgres if: always() && steps.install-dependencies.outcome == 'success' uses: ./.github/composite-actions/build-modified-postgres - name: Compile ANTLR id: compile-antlr if: always() && steps.build-modified-postgres.outcome == 'success' uses: ./.github/composite-actions/compile-antlr - name: Build Extensions id: build-extensions if: always() && steps.compile-antlr.outcome == 'success' uses: ./.github/composite-actions/build-extensions - name: Install Extensions id: install-extensions if: always() && steps.build-extensions.outcome == 'success' uses: ./.github/composite-actions/install-extensions - name: Run JDBC Tests id: jdbc if: always() && steps.install-extensions.outcome == 'success' timeout-minutes: 60 run: | cd test/JDBC/ mvn -B -ntp test - name: Cleanup babelfish database id: cleanup if: always() && steps.install-extensions.outcome == 'success' run: | sudo ~/postgres/bin/psql -d postgres -U runner -v user="jdbc_user" -v db="jdbc_testdb" -f .github/scripts/cleanup_babelfish_database.sql - name: Upload Log if: always() && steps.jdbc.outcome == 'failure' uses: actions/upload-artifact@v4 with: name: postgres-log path: ~/postgres/data/logfile # The test summary files contain paths with ':' characters, which is not allowed with the upload-artifact actions - name: Rename Test Summary Files id: test-file-rename if: always() && steps.jdbc.outcome == 'failure' run: | cd test/JDBC/Info timestamp=`ls -Art | tail -n 1` cd $timestamp mv $timestamp.diff ../output-diff.diff mv "$timestamp"_runSummary.log ../run-summary.log - name: Upload Run Summary if: always() && steps.test-file-rename == 'success' uses: actions/upload-artifact@v4 with: name: run-summary.log path: test/JDBC/Info/run-summary.log - name: Upload Output Diff if: always() && steps.jdbc.outcome == 'failure' uses: actions/upload-artifact@v4 with: name: output-diff.diff path: test/JDBC/Info/output-diff.diff