From 7ecdab0863182111d922bcafd593232c8543f26a Mon Sep 17 00:00:00 2001 From: Olivier Lepage-Applin Date: Fri, 4 Jul 2025 14:35:20 -0400 Subject: [PATCH 1/5] only run s3 regression tests when detecting changes to s3 related modules --- .github/workflows/codebuild-ci.yml | 41 +++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codebuild-ci.yml b/.github/workflows/codebuild-ci.yml index 72b79d06b3ed..4a844eccc8c6 100644 --- a/.github/workflows/codebuild-ci.yml +++ b/.github/workflows/codebuild-ci.yml @@ -168,9 +168,33 @@ jobs: with: project-name: aws-sdk-java-v2-migration-test - s3-regression-tests-download: + # Check if S3, HTTP client, or core modules have changed + check-s3-related-changes: if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest + outputs: + has_s3_related_changes: ${{ steps.check-changes.outputs.has_s3_related_changes }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Check for changes related to s3 + id: check-changes + run: | + git fetch origin ${{ github.base_ref }} --depth 1 + CHANGED_FILES=$(git diff remotes/origin/${{ github.base_ref }} --name-only) + if echo "$CHANGED_FILES" | grep -q -E '^core/|^services/s3/|^services-custom/s3-transfer-manager/|^http-client-spi/|^http-clients/'; then + echo "Detected changes in S3, HTTP client, or core modules" + echo "has_s3_related_changes=true" >> $GITHUB_OUTPUT + else + echo "No changes detected in S3, HTTP client, or core modules" + echo "has_s3_related_changes=false" >> $GITHUB_OUTPUT + fi + + s3-regression-tests-download: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + runs-on: ubuntu-latest env: REGRESSION_TEST: DownloadStreamingRegressionTesting steps: @@ -186,7 +210,8 @@ jobs: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-control-plane: - if: github.repository == 'aws/aws-sdk-java-v2' + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' runs-on: ubuntu-latest env: REGRESSION_TEST: ControlPlaneOperationRegressionTesting @@ -203,7 +228,8 @@ jobs: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-sync: - if: github.repository == 'aws/aws-sdk-java-v2' + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadSyncRegressionTesting @@ -220,7 +246,8 @@ jobs: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-async: - if: github.repository == 'aws/aws-sdk-java-v2' + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadAsyncRegressionTesting @@ -237,7 +264,8 @@ jobs: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-crt: - if: github.repository == 'aws/aws-sdk-java-v2' + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadCrtRegressionTesting @@ -254,7 +282,8 @@ jobs: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-multi: - if: github.repository == 'aws/aws-sdk-java-v2' + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadTransferManagerRegressionTesting From b1cf83a29b5676b86bf5bdc57c6e85133f976a7e Mon Sep 17 00:00:00 2001 From: Olivier Lepage-Applin Date: Fri, 4 Jul 2025 14:59:35 -0400 Subject: [PATCH 2/5] dummy change --- .../s3/internal/multipart/MultipartDownloaderSubscriber.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java index d369d0caff02..efbf63590258 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java @@ -75,7 +75,7 @@ public class MultipartDownloaderSubscriber implements Subscriber Date: Fri, 4 Jul 2025 16:24:16 -0400 Subject: [PATCH 3/5] mark CI job as successful without running tests when detecting non s3 related changes. Remove dummy change for validating/testing CI behaviour. --- .github/workflows/codebuild-ci.yml | 54 ++++++++++++++++--- .../MultipartDownloaderSubscriber.java | 2 +- 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codebuild-ci.yml b/.github/workflows/codebuild-ci.yml index 4a844eccc8c6..948ebed1f79a 100644 --- a/.github/workflows/codebuild-ci.yml +++ b/.github/workflows/codebuild-ci.yml @@ -193,108 +193,150 @@ jobs: s3-regression-tests-download: needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest env: REGRESSION_TEST: DownloadStreamingRegressionTesting steps: + - name: Skip test - no S3 related changes + if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' + run: | + echo "No S3 related changes detected. Skipping S3 regression tests for downloads." + exit 0 - name: Configure AWS Credentials + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} aws-region: us-west-2 role-duration-seconds: 7200 - name: Run s3 regression tests for downloads + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-control-plane: needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest env: REGRESSION_TEST: ControlPlaneOperationRegressionTesting steps: + - name: Skip test - no S3 related changes + if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' + run: | + echo "No S3 related changes detected. Skipping S3 regression tests for control plane." + exit 0 - name: Configure AWS Credentials + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} aws-region: us-west-2 role-duration-seconds: 7200 - name: Run s3 regression tests for control plane + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-sync: needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadSyncRegressionTesting steps: + - name: Skip test - no S3 related changes + if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' + run: | + echo "No S3 related changes detected. Skipping S3 regression tests for upload sync." + exit 0 - name: Configure AWS Credentials + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} aws-region: us-west-2 role-duration-seconds: 7200 - name: Run s3 regression tests for uploads + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-async: needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadAsyncRegressionTesting steps: + - name: Skip test - no S3 related changes + if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' + run: | + echo "No S3 related changes detected. Skipping S3 regression tests for upload async." + exit 0 - name: Configure AWS Credentials + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} aws-region: us-west-2 role-duration-seconds: 7200 - name: Run s3 regression tests for uploads + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-crt: needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadCrtRegressionTesting steps: + - name: Skip test - no S3 related changes + if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' + run: | + echo "No S3 related changes detected. Skipping S3 regression tests for upload CRT." + exit 0 - name: Configure AWS Credentials + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} aws-region: us-west-2 role-duration-seconds: 7200 - name: Run s3 regression tests for uploads + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-s3-regression-tests env-vars-for-codebuild: REGRESSION_TEST s3-regression-tests-upload-multi: needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' && needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' + if: github.repository == 'aws/aws-sdk-java-v2' runs-on: ubuntu-latest env: REGRESSION_TEST: UploadTransferManagerRegressionTesting steps: + - name: Skip test - no S3 related changes + if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' + run: | + echo "No S3 related changes detected. Skipping S3 regression tests for upload transfer manager." + exit 0 - name: Configure AWS Credentials + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} aws-region: us-west-2 role-duration-seconds: 7200 - name: Run s3 regression tests for uploads + if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-s3-regression-tests diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java index efbf63590258..d369d0caff02 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriber.java @@ -75,7 +75,7 @@ public class MultipartDownloaderSubscriber implements Subscriber Date: Fri, 4 Jul 2025 17:25:04 -0400 Subject: [PATCH 4/5] move s3 regression tests to a new workflow. Skip in CodeBuild when no s3 related changes are detected, instead of in the Github workflow jobs --- .github/workflows/codebuild-ci.yml | 174 ---------------------- .github/workflows/s3-regression-tests.yml | 157 +++++++++++++++++++ buildspecs/s3-regression-tests.yml | 9 +- 3 files changed, 164 insertions(+), 176 deletions(-) create mode 100644 .github/workflows/s3-regression-tests.yml diff --git a/.github/workflows/codebuild-ci.yml b/.github/workflows/codebuild-ci.yml index 948ebed1f79a..fa523f4c0476 100644 --- a/.github/workflows/codebuild-ci.yml +++ b/.github/workflows/codebuild-ci.yml @@ -167,177 +167,3 @@ jobs: uses: aws-actions/aws-codebuild-run-build@v1 with: project-name: aws-sdk-java-v2-migration-test - - # Check if S3, HTTP client, or core modules have changed - check-s3-related-changes: - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - outputs: - has_s3_related_changes: ${{ steps.check-changes.outputs.has_s3_related_changes }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Check for changes related to s3 - id: check-changes - run: | - git fetch origin ${{ github.base_ref }} --depth 1 - CHANGED_FILES=$(git diff remotes/origin/${{ github.base_ref }} --name-only) - if echo "$CHANGED_FILES" | grep -q -E '^core/|^services/s3/|^services-custom/s3-transfer-manager/|^http-client-spi/|^http-clients/'; then - echo "Detected changes in S3, HTTP client, or core modules" - echo "has_s3_related_changes=true" >> $GITHUB_OUTPUT - else - echo "No changes detected in S3, HTTP client, or core modules" - echo "has_s3_related_changes=false" >> $GITHUB_OUTPUT - fi - - s3-regression-tests-download: - needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - env: - REGRESSION_TEST: DownloadStreamingRegressionTesting - steps: - - name: Skip test - no S3 related changes - if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' - run: | - echo "No S3 related changes detected. Skipping S3 regression tests for downloads." - exit 0 - - name: Configure AWS Credentials - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} - aws-region: us-west-2 - role-duration-seconds: 7200 - - name: Run s3 regression tests for downloads - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: aws-sdk-java-v2-s3-regression-tests - env-vars-for-codebuild: REGRESSION_TEST - s3-regression-tests-control-plane: - needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - env: - REGRESSION_TEST: ControlPlaneOperationRegressionTesting - steps: - - name: Skip test - no S3 related changes - if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' - run: | - echo "No S3 related changes detected. Skipping S3 regression tests for control plane." - exit 0 - - name: Configure AWS Credentials - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} - aws-region: us-west-2 - role-duration-seconds: 7200 - - name: Run s3 regression tests for control plane - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: aws-sdk-java-v2-s3-regression-tests - env-vars-for-codebuild: REGRESSION_TEST - s3-regression-tests-upload-sync: - needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - env: - REGRESSION_TEST: UploadSyncRegressionTesting - steps: - - name: Skip test - no S3 related changes - if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' - run: | - echo "No S3 related changes detected. Skipping S3 regression tests for upload sync." - exit 0 - - name: Configure AWS Credentials - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} - aws-region: us-west-2 - role-duration-seconds: 7200 - - name: Run s3 regression tests for uploads - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: aws-sdk-java-v2-s3-regression-tests - env-vars-for-codebuild: REGRESSION_TEST - s3-regression-tests-upload-async: - needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - env: - REGRESSION_TEST: UploadAsyncRegressionTesting - steps: - - name: Skip test - no S3 related changes - if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' - run: | - echo "No S3 related changes detected. Skipping S3 regression tests for upload async." - exit 0 - - name: Configure AWS Credentials - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} - aws-region: us-west-2 - role-duration-seconds: 7200 - - name: Run s3 regression tests for uploads - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: aws-sdk-java-v2-s3-regression-tests - env-vars-for-codebuild: REGRESSION_TEST - s3-regression-tests-upload-crt: - needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - env: - REGRESSION_TEST: UploadCrtRegressionTesting - steps: - - name: Skip test - no S3 related changes - if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' - run: | - echo "No S3 related changes detected. Skipping S3 regression tests for upload CRT." - exit 0 - - name: Configure AWS Credentials - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} - aws-region: us-west-2 - role-duration-seconds: 7200 - - name: Run s3 regression tests for uploads - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: aws-sdk-java-v2-s3-regression-tests - env-vars-for-codebuild: REGRESSION_TEST - s3-regression-tests-upload-multi: - needs: check-s3-related-changes - if: github.repository == 'aws/aws-sdk-java-v2' - runs-on: ubuntu-latest - env: - REGRESSION_TEST: UploadTransferManagerRegressionTesting - steps: - - name: Skip test - no S3 related changes - if: needs.check-s3-related-changes.outputs.has_s3_related_changes != 'true' - run: | - echo "No S3 related changes detected. Skipping S3 regression tests for upload transfer manager." - exit 0 - - name: Configure AWS Credentials - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} - aws-region: us-west-2 - role-duration-seconds: 7200 - - name: Run s3 regression tests for uploads - if: needs.check-s3-related-changes.outputs.has_s3_related_changes == 'true' - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: aws-sdk-java-v2-s3-regression-tests - env-vars-for-codebuild: REGRESSION_TEST diff --git a/.github/workflows/s3-regression-tests.yml b/.github/workflows/s3-regression-tests.yml new file mode 100644 index 000000000000..840d46ac48fc --- /dev/null +++ b/.github/workflows/s3-regression-tests.yml @@ -0,0 +1,157 @@ +name: S3 Regression Tests +on: + pull_request: + merge_group: + push: + branches: + - master + paths-ignore: + - '**.md' + - '.all-contributorsrc' + - 'docs/**' + +permissions: + id-token: write + +jobs: + check-s3-related-changes: + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + outputs: + has_s3_related_changes: ${{ steps.check-changes.outputs.has_s3_related_changes }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Check for changes related to s3 + id: check-changes + run: | + git fetch origin ${{ github.base_ref }} --depth 1 + CHANGED_FILES=$(git diff remotes/origin/${{ github.base_ref }} --name-only) + if echo "$CHANGED_FILES" | grep -q -E '^core/|^services/s3/|^services-custom/s3-transfer-manager/|^http-client-spi/|^http-clients/'; then + echo "Detected changes in S3, HTTP client, or core modules" + echo "has_s3_related_changes=true" >> $GITHUB_OUTPUT + else + echo "No changes detected in S3, HTTP client, or core modules" + echo "has_s3_related_changes=false" >> $GITHUB_OUTPUT + fi + + s3-regression-tests-download: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + env: + REGRESSION_TEST: DownloadStreamingRegressionTesting + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run s3 regression tests for downloads + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-s3-regression-tests + env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES + + s3-regression-tests-control-plane: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + env: + REGRESSION_TEST: ControlPlaneOperationRegressionTesting + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run s3 regression tests for control plane + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-s3-regression-tests + env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES + + s3-regression-tests-upload-sync: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + env: + REGRESSION_TEST: UploadSyncRegressionTesting + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run s3 regression tests for uploads + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-s3-regression-tests + env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES + + s3-regression-tests-upload-async: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + env: + REGRESSION_TEST: UploadAsyncRegressionTesting + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run s3 regression tests for uploads + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-s3-regression-tests + env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES + + s3-regression-tests-upload-crt: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + env: + REGRESSION_TEST: UploadCrtRegressionTesting + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run s3 regression tests for uploads + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-s3-regression-tests + env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES + + s3-regression-tests-upload-multi: + needs: check-s3-related-changes + if: github.repository == 'aws/aws-sdk-java-v2' + runs-on: ubuntu-latest + env: + REGRESSION_TEST: UploadTransferManagerRegressionTesting + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }} + aws-region: us-west-2 + role-duration-seconds: 7200 + - name: Run s3 regression tests for uploads + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: aws-sdk-java-v2-s3-regression-tests + env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES diff --git a/buildspecs/s3-regression-tests.yml b/buildspecs/s3-regression-tests.yml index 4b7102350ce0..1905f850ed6f 100644 --- a/buildspecs/s3-regression-tests.yml +++ b/buildspecs/s3-regression-tests.yml @@ -3,8 +3,13 @@ version: 0.2 phases: build: commands: - - mvn clean install -P s3-regression-tests -pl :s3-tests -am -T1C -Dregression.test=$REGRESSION_TEST $MAVEN_OPTIONS - - echo $MAVEN_OPTIONS + - | + if [ "$HAS_S3_CHANGES" = "false" ]; then + echo "No s3 related changes in the PR, skipping s3 regression tests" + exit 0 + fi + mvn clean install -P s3-regression-tests -pl :s3-tests -am -T1C -Dregression.test="$REGRESSION_TEST" $MAVEN_OPTIONS + echo $MAVEN_OPTIONS finally: - mkdir -p codebuild-test-reports - find ./ -name 'TEST-*.xml' -type f -exec cp {} codebuild-test-reports/ \; From 4a053e3c407e48b639315ab03faf8b65babfacee Mon Sep 17 00:00:00 2001 From: Olivier L Applin Date: Fri, 11 Jul 2025 14:11:43 -0400 Subject: [PATCH 5/5] Update s3-regression-tests.yml remove unecessary path-ignore --- .github/workflows/s3-regression-tests.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/s3-regression-tests.yml b/.github/workflows/s3-regression-tests.yml index 840d46ac48fc..abad4b4e675f 100644 --- a/.github/workflows/s3-regression-tests.yml +++ b/.github/workflows/s3-regression-tests.yml @@ -5,10 +5,6 @@ on: push: branches: - master - paths-ignore: - - '**.md' - - '.all-contributorsrc' - - 'docs/**' permissions: id-token: write