diff --git a/.github/workflows/mysql_advanced_performance.yml b/.github/workflows/mysql_advanced_performance.yml index 462a27d9f..84d0f6775 100644 --- a/.github/workflows/mysql_advanced_performance.yml +++ b/.github/workflows/mysql_advanced_performance.yml @@ -41,7 +41,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-aurora-mysql-advanced-performance env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/mysql_performance.yml b/.github/workflows/mysql_performance.yml index b01104c59..87c9bb261 100644 --- a/.github/workflows/mysql_performance.yml +++ b/.github/workflows/mysql_performance.yml @@ -41,7 +41,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-aurora-mysql-performance env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/pg_advanced_performance.yml b/.github/workflows/pg_advanced_performance.yml index 8e248185f..9d65dde94 100644 --- a/.github/workflows/pg_advanced_performance.yml +++ b/.github/workflows/pg_advanced_performance.yml @@ -41,7 +41,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-aurora-pg-advanced-performance env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/pg_performance.yml b/.github/workflows/pg_performance.yml index c0c57430d..4e0ae53ef 100644 --- a/.github/workflows/pg_performance.yml +++ b/.github/workflows/pg_performance.yml @@ -41,7 +41,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-aurora-pg-performance env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/run-autoscaling-tests.yml b/.github/workflows/run-autoscaling-tests.yml index 93463a2fb..d78eddbee 100644 --- a/.github/workflows/run-autoscaling-tests.yml +++ b/.github/workflows/run-autoscaling-tests.yml @@ -44,7 +44,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-autoscaling-only env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} AURORA_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/run-integration-tests-codebuild.yml b/.github/workflows/run-integration-tests-codebuild.yml index 4bc385f85..8d83f349f 100644 --- a/.github/workflows/run-integration-tests-codebuild.yml +++ b/.github/workflows/run-integration-tests-codebuild.yml @@ -48,7 +48,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-all-${{ matrix.environment }}-aurora env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/run-integration-tests-default.yml b/.github/workflows/run-integration-tests-default.yml index f0d53f0a8..9a80d304b 100644 --- a/.github/workflows/run-integration-tests-default.yml +++ b/.github/workflows/run-integration-tests-default.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - dbEngine: [ "mysql-aurora", "mysql-multi-az", "pg-aurora", "pg-multi-az" ] + dbEngine: [ "mysql-aurora", "pg-aurora" ] steps: - name: 'Clone repository' uses: actions/checkout@v4 @@ -47,7 +47,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-all-${{ matrix.dbEngine }} env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/run-integration-tests-latest.yml b/.github/workflows/run-integration-tests-latest.yml index 307a39108..9e5442863 100644 --- a/.github/workflows/run-integration-tests-latest.yml +++ b/.github/workflows/run-integration-tests-latest.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - dbEngine: [ "mysql-aurora", "mysql-multi-az", "pg-aurora", "pg-multi-az" ] + dbEngine: [ "mysql-aurora", "pg-aurora"] steps: - name: 'Clone repository' uses: actions/checkout@v4 @@ -47,7 +47,7 @@ jobs: run: | ./gradlew --no-parallel --no-daemon test-all-${{ matrix.dbEngine }} env: - AURORA_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/run-integration-tests-multi-az.yml b/.github/workflows/run-integration-tests-multi-az.yml new file mode 100644 index 000000000..aa3712305 --- /dev/null +++ b/.github/workflows/run-integration-tests-multi-az.yml @@ -0,0 +1,74 @@ +name: Run MultiAZ Integration Tests + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + multiaz-integration-tests: + name: 'Run MultiAZ integration tests' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + dbEngine: [ "mysql-multi-az", "pg-multi-az" ] + version: [ "default", "latest" ] + steps: + - name: 'Clone repository' + uses: actions/checkout@v4 + with: + fetch-depth: 50 + - name: 'Set up JDK 8' + uses: actions/setup-java@v4 + with: + distribution: 'corretto' + java-version: 8 + - name: 'Configure AWS credentials' + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + - name: 'Set up temp AWS credentials' + run: | + creds=($(aws sts get-session-token \ + --duration-seconds 21600 \ + --query 'Credentials.[AccessKeyId, SecretAccessKey, SessionToken]' \ + --output text \ + | xargs)); + echo "::add-mask::${creds[0]}" + echo "::add-mask::${creds[1]}" + echo "::add-mask::${creds[2]}" + echo "TEMP_AWS_ACCESS_KEY_ID=${creds[0]}" >> $GITHUB_ENV + echo "TEMP_AWS_SECRET_ACCESS_KEY=${creds[1]}" >> $GITHUB_ENV + echo "TEMP_AWS_SESSION_TOKEN=${creds[2]}" >> $GITHUB_ENV + - name: Run integration tests + run: | + ./gradlew --no-parallel --no-daemon test-all-${{ matrix.dbEngine }} + env: + RDS_CLUSTER_DOMAIN: ${{ secrets.DB_CONN_SUFFIX }} + RDS_DB_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + AWS_ACCESS_KEY_ID: ${{ env.TEMP_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ env.TEMP_AWS_SECRET_ACCESS_KEY }} + AWS_SESSION_TOKEN: ${{ env.TEMP_AWS_SESSION_TOKEN }} + AURORA_MYSQL_DB_ENGINE_VERSION: ${{ matrix.version }} + AURORA_PG_ENGINE_VERSION: ${{ matrix.vresion }} + - name: Mask data + run: | + ./gradlew --no-parallel --no-daemon maskJunitHtmlReport + - name: Archive junit results for ${{ matrix.dbEngine }} + if: always() + uses: actions/upload-artifact@v4 + with: + name: junit-report-default-${{ matrix.dbEngine }} + path: ./wrapper/build/test-results + retention-days: 5 + - name: Archive html summary report for ${{ matrix.dbEngine }} + if: always() + uses: actions/upload-artifact@v4 + with: + name: html-summary-report-${{ matrix.vresion }}-${{ matrix.dbEngine }} + path: ./wrapper/build/report + retention-days: 5 diff --git a/wrapper/src/test/java/integration/host/TestEnvironment.java b/wrapper/src/test/java/integration/host/TestEnvironment.java index cd727ff94..eae6667d4 100644 --- a/wrapper/src/test/java/integration/host/TestEnvironment.java +++ b/wrapper/src/test/java/integration/host/TestEnvironment.java @@ -555,46 +555,35 @@ private static String getRdsEngine(TestEnvironmentRequest request) { private static String getDbEngineVersion(TestEnvironment env) { switch (env.info.getRequest().getDatabaseEngineDeployment()) { case AURORA: - return getAuroraDbEngineVersion(env); + return getRdsEngineVersion(env, "aurora-"); case RDS: case RDS_MULTI_AZ_CLUSTER: - return getRdsEngineVersion(env.info.getRequest()); + return getRdsEngineVersion(env, ""); default: throw new NotImplementedException(env.info.getRequest().getDatabaseEngineDeployment().toString()); } } - private static String getAuroraDbEngineVersion(TestEnvironment env) { + private static String getRdsEngineVersion(TestEnvironment env, String engineNamePrefix) { String engineName; String systemPropertyVersion; TestEnvironmentRequest request = env.info.getRequest(); switch (request.getDatabaseEngine()) { case MYSQL: - engineName = "aurora-mysql"; + engineName = engineNamePrefix + "mysql"; systemPropertyVersion = config.auroraMySqlDbEngineVersion; break; case PG: - engineName = "aurora-postgresql"; + engineName = engineNamePrefix + "postgresql"; systemPropertyVersion = config.auroraPgDbEngineVersion; break; default: throw new NotImplementedException(request.getDatabaseEngine().toString()); } - return findAuroraDbEngineVersion(env, engineName, systemPropertyVersion); + return findDbEngineVersion(env, engineName, systemPropertyVersion); } - private static String getRdsEngineVersion(TestEnvironmentRequest request) { - switch (request.getDatabaseEngine()) { - case MYSQL: - return "8.0.33"; - case PG: - return "15.4"; - default: - throw new NotImplementedException(request.getDatabaseEngine().toString()); - } - } - - private static String findAuroraDbEngineVersion( + private static String findDbEngineVersion( TestEnvironment env, String engineName, String systemPropertyVersion) { @@ -1078,8 +1067,8 @@ private static void preCreateEnvironment(int currentEnvIndex) { if (preCreateInfo.envPreCreateFuture == null && (preCreateInfo.request.getDatabaseEngineDeployment() == DatabaseEngineDeployment.AURORA - || preCreateInfo.request.getDatabaseEngineDeployment() == DatabaseEngineDeployment.RDS - || preCreateInfo.request.getDatabaseEngineDeployment() == DatabaseEngineDeployment.RDS_MULTI_AZ_CLUSTER)) { + || preCreateInfo.request.getDatabaseEngineDeployment() == DatabaseEngineDeployment.RDS + || preCreateInfo.request.getDatabaseEngineDeployment() == DatabaseEngineDeployment.RDS_MULTI_AZ_CLUSTER)) { // run environment creation in advance int finalIndex = index;