Skip to content

Commit 15984c9

Browse files
committed
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
1 parent 5f72737 commit 15984c9

File tree

3 files changed

+164
-176
lines changed

3 files changed

+164
-176
lines changed

.github/workflows/codebuild-ci.yml

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