From e8548610dd62e0d6daf7ed75d7b285d053d34a68 Mon Sep 17 00:00:00 2001 From: filipe Date: Fri, 13 Dec 2024 15:51:37 -0300 Subject: [PATCH] fix: reenable test harness (#266) * fix: reenable test harness * chore: allows testing TH from branch * Fix jar name + pin th version * chore: docs * fix scope for test jar --- .github/workflows/test.yml | 81 +++++++++++++++++++++++++++++++++++++- pom.xml | 6 +++ 2 files changed, 85 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7ca8146..bc72df7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,7 +2,7 @@ name: Build and Test on: workflow_dispatch: - pull_request_target: + pull_request: types: - opened - reopened @@ -11,7 +11,7 @@ on: jobs: authorize: - environment: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository && 'external' || 'internal' }} + environment: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository && 'external' || 'internal' }} runs-on: ubuntu-latest steps: - run: true @@ -23,6 +23,83 @@ jobs: with: extraMavenArgs: -Dtest="RedshiftDatabaseTest" + prepare-database: + name: Clean and initialize database + needs: build + runs-on: ubuntu-latest + container: + image: liquibase/liquibase:latest + + strategy: + fail-fast: false + + steps: + - uses: actions/checkout@v2 + + - name: Download Artifacts + uses: actions/download-artifact@v3 + with: + name: liquibase-redshift-artifacts + + # FIXME the redshift jar version should come from the pom.xml file + - name: Download AWS Redshift driver + run: wget https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.jar + + - name: Add Redshift extension and driver to liquibase classpath + run: | + cp redshift-jdbc42-2.1.0.14.jar /liquibase/lib/ + cp liquibase-redshift-*-SNAPSHOT.jar /liquibase/lib/ + + - name: Clean AWS Redshift Database + run: liquibase --username="${{ secrets.TH_DB_ADMIN }}" --password="${{ secrets.TH_DB_PASSWD }}" --url="${{ secrets.TH_REDSHIFTURL }}" dropAll + + - name: Init Database + run: liquibase --classpath="src/test/resources" --changeLogFile="harness.initScript.sql" --username="${{ secrets.TH_DB_ADMIN }}" --password="${{ secrets.TH_DB_PASSWD }}" --url="${{ secrets.TH_REDSHIFTURL }}" update + + integration-test: + name: Test Harness for Redshift ${{ matrix.redshift }} + needs: prepare-database + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + redshift: [ "" ] + + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK + uses: actions/setup-java@v3 + with: + java-version: 11 + distribution: 'temurin' + cache: 'maven' + + - name: Build Cache + uses: actions/cache@v3.0.5 + with: + key: build-${{ github.run_number }}-${{ github.run_attempt }} + path: | + **/target/** + ~/.m2/repository/org/liquibase/ + + - name: Harness Test Run + run: mvn -Dtest="LiquibaseHarnessSuiteIT" -DdbName=redshift -DdbUsername=${{secrets.TH_DB_ADMIN}} -DdbPassword=${{secrets.TH_DB_PASSWD}} -DdbUrl=${{secrets.TH_REDSHIFTURL}} test + + - name: Foundational Harness Test Run + run: mvn -Dtest="LiquibaseHarnessFoundationalSuiteTest" -DdbName=redshift -DdbUsername=${{secrets.TH_DB_ADMIN}} -DdbPassword=${{secrets.TH_DB_PASSWD}} -DdbUrl=${{secrets.TH_REDSHIFTURL}} test + + - name: Advanced Harness Test Run + run: mvn -Dtest="LiquibaseHarnessAdvancedSuiteTest" -DdbName=redshift -DdbUsername=${{secrets.TH_DB_ADMIN}} -DdbPassword=${{secrets.TH_DB_PASSWD}} -DdbUrl=${{secrets.TH_REDSHIFTURL}} test + + - name: Archive Redshift Test Results + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: redshift-test-results + path: build/spock-reports + dependabot-automerge: needs: build-test uses: liquibase/build-logic/.github/workflows/dependabot-automerge.yml@main diff --git a/pom.xml b/pom.xml index 78a578c..a44c0d9 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,12 @@ redshift-jdbc42 2.1.0.31 + + org.liquibase + liquibase-test-harness + 1.0.9 + test +