Skip to content

Commit f9378bf

Browse files
authored
Run s3 regression tests only when detecting changes related to s3 (#6236)
* only run s3 regression tests when detecting changes to s3 related modules * dummy change * mark CI job as successful without running tests when detecting non s3 related changes. Remove dummy change for validating/testing CI behaviour. * 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 * Update s3-regression-tests.yml remove unecessary path-ignore
1 parent 7ce5fd2 commit f9378bf

File tree

3 files changed

+160
-105
lines changed

3 files changed

+160
-105
lines changed

.github/workflows/codebuild-ci.yml

Lines changed: 0 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -167,106 +167,3 @@ jobs:
167167
uses: aws-actions/aws-codebuild-run-build@v1
168168
with:
169169
project-name: aws-sdk-java-v2-migration-test
170-
171-
s3-regression-tests-download:
172-
if: github.repository == 'aws/aws-sdk-java-v2'
173-
runs-on: ubuntu-latest
174-
env:
175-
REGRESSION_TEST: DownloadStreamingRegressionTesting
176-
steps:
177-
- name: Configure AWS Credentials
178-
uses: aws-actions/configure-aws-credentials@v4
179-
with:
180-
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
181-
aws-region: us-west-2
182-
role-duration-seconds: 7200
183-
- name: Run s3 regression tests for downloads
184-
uses: aws-actions/aws-codebuild-run-build@v1
185-
with:
186-
project-name: aws-sdk-java-v2-s3-regression-tests
187-
env-vars-for-codebuild: REGRESSION_TEST
188-
s3-regression-tests-control-plane:
189-
if: github.repository == 'aws/aws-sdk-java-v2'
190-
runs-on: ubuntu-latest
191-
env:
192-
REGRESSION_TEST: ControlPlaneOperationRegressionTesting
193-
steps:
194-
- name: Configure AWS Credentials
195-
uses: aws-actions/configure-aws-credentials@v4
196-
with:
197-
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
198-
aws-region: us-west-2
199-
role-duration-seconds: 7200
200-
- name: Run s3 regression tests for control plane
201-
uses: aws-actions/aws-codebuild-run-build@v1
202-
with:
203-
project-name: aws-sdk-java-v2-s3-regression-tests
204-
env-vars-for-codebuild: REGRESSION_TEST
205-
s3-regression-tests-upload-sync:
206-
if: github.repository == 'aws/aws-sdk-java-v2'
207-
runs-on: ubuntu-latest
208-
env:
209-
REGRESSION_TEST: UploadSyncRegressionTesting
210-
steps:
211-
- name: Configure AWS Credentials
212-
uses: aws-actions/configure-aws-credentials@v4
213-
with:
214-
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
215-
aws-region: us-west-2
216-
role-duration-seconds: 7200
217-
- name: Run s3 regression tests for uploads
218-
uses: aws-actions/aws-codebuild-run-build@v1
219-
with:
220-
project-name: aws-sdk-java-v2-s3-regression-tests
221-
env-vars-for-codebuild: REGRESSION_TEST
222-
s3-regression-tests-upload-async:
223-
if: github.repository == 'aws/aws-sdk-java-v2'
224-
runs-on: ubuntu-latest
225-
env:
226-
REGRESSION_TEST: UploadAsyncRegressionTesting
227-
steps:
228-
- name: Configure AWS Credentials
229-
uses: aws-actions/configure-aws-credentials@v4
230-
with:
231-
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
232-
aws-region: us-west-2
233-
role-duration-seconds: 7200
234-
- name: Run s3 regression tests for uploads
235-
uses: aws-actions/aws-codebuild-run-build@v1
236-
with:
237-
project-name: aws-sdk-java-v2-s3-regression-tests
238-
env-vars-for-codebuild: REGRESSION_TEST
239-
s3-regression-tests-upload-crt:
240-
if: github.repository == 'aws/aws-sdk-java-v2'
241-
runs-on: ubuntu-latest
242-
env:
243-
REGRESSION_TEST: UploadCrtRegressionTesting
244-
steps:
245-
- name: Configure AWS Credentials
246-
uses: aws-actions/configure-aws-credentials@v4
247-
with:
248-
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
249-
aws-region: us-west-2
250-
role-duration-seconds: 7200
251-
- name: Run s3 regression tests for uploads
252-
uses: aws-actions/aws-codebuild-run-build@v1
253-
with:
254-
project-name: aws-sdk-java-v2-s3-regression-tests
255-
env-vars-for-codebuild: REGRESSION_TEST
256-
s3-regression-tests-upload-multi:
257-
if: github.repository == 'aws/aws-sdk-java-v2'
258-
runs-on: ubuntu-latest
259-
env:
260-
REGRESSION_TEST: UploadTransferManagerRegressionTesting
261-
steps:
262-
- name: Configure AWS Credentials
263-
uses: aws-actions/configure-aws-credentials@v4
264-
with:
265-
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
266-
aws-region: us-west-2
267-
role-duration-seconds: 7200
268-
- name: Run s3 regression tests for uploads
269-
uses: aws-actions/aws-codebuild-run-build@v1
270-
with:
271-
project-name: aws-sdk-java-v2-s3-regression-tests
272-
env-vars-for-codebuild: REGRESSION_TEST
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
name: S3 Regression Tests
2+
on:
3+
pull_request:
4+
merge_group:
5+
push:
6+
branches:
7+
- master
8+
9+
permissions:
10+
id-token: write
11+
12+
jobs:
13+
check-s3-related-changes:
14+
if: github.repository == 'aws/aws-sdk-java-v2'
15+
runs-on: ubuntu-latest
16+
outputs:
17+
has_s3_related_changes: ${{ steps.check-changes.outputs.has_s3_related_changes }}
18+
steps:
19+
- uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
22+
- name: Check for changes related to s3
23+
id: check-changes
24+
run: |
25+
git fetch origin ${{ github.base_ref }} --depth 1
26+
CHANGED_FILES=$(git diff remotes/origin/${{ github.base_ref }} --name-only)
27+
if echo "$CHANGED_FILES" | grep -q -E '^core/|^services/s3/|^services-custom/s3-transfer-manager/|^http-client-spi/|^http-clients/'; then
28+
echo "Detected changes in S3, HTTP client, or core modules"
29+
echo "has_s3_related_changes=true" >> $GITHUB_OUTPUT
30+
else
31+
echo "No changes detected in S3, HTTP client, or core modules"
32+
echo "has_s3_related_changes=false" >> $GITHUB_OUTPUT
33+
fi
34+
35+
s3-regression-tests-download:
36+
needs: check-s3-related-changes
37+
if: github.repository == 'aws/aws-sdk-java-v2'
38+
runs-on: ubuntu-latest
39+
env:
40+
REGRESSION_TEST: DownloadStreamingRegressionTesting
41+
HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }}
42+
steps:
43+
- name: Configure AWS Credentials
44+
uses: aws-actions/configure-aws-credentials@v4
45+
with:
46+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
47+
aws-region: us-west-2
48+
role-duration-seconds: 7200
49+
- name: Run s3 regression tests for downloads
50+
uses: aws-actions/aws-codebuild-run-build@v1
51+
with:
52+
project-name: aws-sdk-java-v2-s3-regression-tests
53+
env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES
54+
55+
s3-regression-tests-control-plane:
56+
needs: check-s3-related-changes
57+
if: github.repository == 'aws/aws-sdk-java-v2'
58+
runs-on: ubuntu-latest
59+
env:
60+
REGRESSION_TEST: ControlPlaneOperationRegressionTesting
61+
HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }}
62+
steps:
63+
- name: Configure AWS Credentials
64+
uses: aws-actions/configure-aws-credentials@v4
65+
with:
66+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
67+
aws-region: us-west-2
68+
role-duration-seconds: 7200
69+
- name: Run s3 regression tests for control plane
70+
uses: aws-actions/aws-codebuild-run-build@v1
71+
with:
72+
project-name: aws-sdk-java-v2-s3-regression-tests
73+
env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES
74+
75+
s3-regression-tests-upload-sync:
76+
needs: check-s3-related-changes
77+
if: github.repository == 'aws/aws-sdk-java-v2'
78+
runs-on: ubuntu-latest
79+
env:
80+
REGRESSION_TEST: UploadSyncRegressionTesting
81+
HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }}
82+
steps:
83+
- name: Configure AWS Credentials
84+
uses: aws-actions/configure-aws-credentials@v4
85+
with:
86+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
87+
aws-region: us-west-2
88+
role-duration-seconds: 7200
89+
- name: Run s3 regression tests for uploads
90+
uses: aws-actions/aws-codebuild-run-build@v1
91+
with:
92+
project-name: aws-sdk-java-v2-s3-regression-tests
93+
env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES
94+
95+
s3-regression-tests-upload-async:
96+
needs: check-s3-related-changes
97+
if: github.repository == 'aws/aws-sdk-java-v2'
98+
runs-on: ubuntu-latest
99+
env:
100+
REGRESSION_TEST: UploadAsyncRegressionTesting
101+
HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }}
102+
steps:
103+
- name: Configure AWS Credentials
104+
uses: aws-actions/configure-aws-credentials@v4
105+
with:
106+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
107+
aws-region: us-west-2
108+
role-duration-seconds: 7200
109+
- name: Run s3 regression tests for uploads
110+
uses: aws-actions/aws-codebuild-run-build@v1
111+
with:
112+
project-name: aws-sdk-java-v2-s3-regression-tests
113+
env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES
114+
115+
s3-regression-tests-upload-crt:
116+
needs: check-s3-related-changes
117+
if: github.repository == 'aws/aws-sdk-java-v2'
118+
runs-on: ubuntu-latest
119+
env:
120+
REGRESSION_TEST: UploadCrtRegressionTesting
121+
HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }}
122+
steps:
123+
- name: Configure AWS Credentials
124+
uses: aws-actions/configure-aws-credentials@v4
125+
with:
126+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
127+
aws-region: us-west-2
128+
role-duration-seconds: 7200
129+
- name: Run s3 regression tests for uploads
130+
uses: aws-actions/aws-codebuild-run-build@v1
131+
with:
132+
project-name: aws-sdk-java-v2-s3-regression-tests
133+
env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES
134+
135+
s3-regression-tests-upload-multi:
136+
needs: check-s3-related-changes
137+
if: github.repository == 'aws/aws-sdk-java-v2'
138+
runs-on: ubuntu-latest
139+
env:
140+
REGRESSION_TEST: UploadTransferManagerRegressionTesting
141+
HAS_S3_CHANGES: ${{ needs.check-s3-related-changes.outputs.has_s3_related_changes }}
142+
steps:
143+
- name: Configure AWS Credentials
144+
uses: aws-actions/configure-aws-credentials@v4
145+
with:
146+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
147+
aws-region: us-west-2
148+
role-duration-seconds: 7200
149+
- name: Run s3 regression tests for uploads
150+
uses: aws-actions/aws-codebuild-run-build@v1
151+
with:
152+
project-name: aws-sdk-java-v2-s3-regression-tests
153+
env-vars-for-codebuild: REGRESSION_TEST,HAS_S3_CHANGES

buildspecs/s3-regression-tests.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@ version: 0.2
33
phases:
44
build:
55
commands:
6-
- mvn clean install -P s3-regression-tests -pl :s3-tests -am -T1C -Dregression.test=$REGRESSION_TEST $MAVEN_OPTIONS
7-
- echo $MAVEN_OPTIONS
6+
- |
7+
if [ "$HAS_S3_CHANGES" = "false" ]; then
8+
echo "No s3 related changes in the PR, skipping s3 regression tests"
9+
exit 0
10+
fi
11+
mvn clean install -P s3-regression-tests -pl :s3-tests -am -T1C -Dregression.test="$REGRESSION_TEST" $MAVEN_OPTIONS
12+
echo $MAVEN_OPTIONS
813
finally:
914
- mkdir -p codebuild-test-reports
1015
- find ./ -name 'TEST-*.xml' -type f -exec cp {} codebuild-test-reports/ \;

0 commit comments

Comments
 (0)