diff --git a/.github/workflows/s3-regression-tests.yml b/.github/workflows/s3-regression-tests.yml index bae74ac5168..8d50d40cd70 100644 --- a/.github/workflows/s3-regression-tests.yml +++ b/.github/workflows/s3-regression-tests.yml @@ -1,6 +1,7 @@ name: S3 Regression Tests on: pull_request: + types: [ opened, synchronize, reopened, labeled, unlabeled ] merge_group: push: branches: @@ -15,6 +16,7 @@ jobs: runs-on: ubuntu-latest outputs: has_s3_related_changes: ${{ steps.check-changes.outputs.has_s3_related_changes }} + force_tests: ${{ contains(github.event.pull_request.labels.*.name, 'force-s3-regression-tests') || steps.check-changes.outputs.has_s3_related_changes }} steps: - uses: actions/checkout@v4 with: @@ -40,7 +42,7 @@ jobs: runs-on: ubuntu-latest env: REGRESSION_TEST: DownloadStreamingRegressionTesting - HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.force_tests }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -61,7 +63,7 @@ jobs: runs-on: ubuntu-latest env: REGRESSION_TEST: ControlPlaneOperationRegressionTesting - HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.force_tests }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -82,7 +84,7 @@ jobs: runs-on: ubuntu-latest env: REGRESSION_TEST: UploadSyncRegressionTesting - HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.force_tests }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -103,7 +105,7 @@ jobs: runs-on: ubuntu-latest env: REGRESSION_TEST: UploadAsyncRegressionTesting - HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.force_tests }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -124,7 +126,7 @@ jobs: runs-on: ubuntu-latest env: REGRESSION_TEST: UploadCrtRegressionTesting - HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.force_tests }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -145,7 +147,7 @@ jobs: runs-on: ubuntu-latest env: REGRESSION_TEST: UploadTransferManagerRegressionTesting - HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }} + HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.force_tests }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 diff --git a/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadConfig.java b/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadConfig.java index 308558db499..cc197a22531 100644 --- a/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadConfig.java +++ b/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadConfig.java @@ -40,13 +40,15 @@ public static List testConfigs() { for (UploadStreamingRegressionTesting.ContentSize cs : UploadStreamingRegressionTesting.ContentSize.values()) { for (boolean ps : payloadSign) { - UploadConfig testConfig = new UploadConfig(); - testConfig.setRequestChecksumValidation(checksumValidation); - testConfig.setBodyType(bodType); - testConfig.setContentSize(cs); - testConfig.setPayloadSigning(ps); - testConfig.setBucketType(BucketType.STANDARD_BUCKET); - configs.add(testConfig); + for (BucketType bucketType : BucketType.values()) { + UploadConfig testConfig = new UploadConfig(); + testConfig.setRequestChecksumValidation(checksumValidation); + testConfig.setBodyType(bodType); + testConfig.setContentSize(cs); + testConfig.setPayloadSigning(ps); + testConfig.setBucketType(bucketType); + configs.add(testConfig); + } } } } diff --git a/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadSyncRegressionTesting.java b/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadSyncRegressionTesting.java index b855a61a597..febdf8c19a3 100644 --- a/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadSyncRegressionTesting.java +++ b/test/s3-tests/src/it/java/software/amazon/awssdk/services/s3/regression/upload/UploadSyncRegressionTesting.java @@ -58,6 +58,12 @@ void putObject(UploadConfig config) throws Exception { "TODO: investigate connection acquire timeout when using RequestBody.fromRemainingByteBuffer" + " with RequestChecksumCalculation.WHEN_SUPPORTED"); + Assumptions.assumeFalse(config.isPayloadSigning() + && config.getBucketType() == BucketType.MRAP + && config.getBodyType() == BodyType.INPUTSTREAM_NOT_RESETABLE, + "SigV4a payload signing requires reading the stream twice - INPUTSTREAM_NOT_RESETABLE is not" + + " valid"); + LOG.info(() -> "Running putObject with config: " + config); BucketType bucketType = config.getBucketType();