Skip to content

Commit 25afb2d

Browse files
committed
[DRAFT] Refactor S3 integration tests into different actions
1 parent d8e8b53 commit 25afb2d

5 files changed

Lines changed: 115 additions & 72 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Run AWS S3 integration tests (assume role)
2+
description: Runs AWS S3 assume-role integration tests using label-based selection.
3+
4+
inputs:
5+
access_key_id:
6+
description: 'AWS Access Key ID'
7+
required: true
8+
secret_access_key:
9+
description: 'AWS Secret Access Key'
10+
required: true
11+
region_name:
12+
description: 'AWS Region Name'
13+
required: true
14+
role_arn:
15+
description: 'AWS Role ARN to assume during tests'
16+
required: true
17+
label_filter:
18+
description: 'Ginkgo Label Filter for tests to run'
19+
required: true
20+
21+
runs:
22+
using: 'composite'
23+
steps:
24+
- name: Run AWS S3 assume-role integration tests
25+
shell: bash
26+
run: |
27+
set -e
28+
export access_key_id="${{inputs.access_key_id}}"
29+
export secret_access_key="${{inputs.secret_access_key}}"
30+
export region_name="${{inputs.region_name}}"
31+
export assume_role_arn="${{inputs.role_arn}}"
32+
export label_filter="${{inputs.label_filter}}"
33+
./.github/scripts/s3/run-integration-aws-assume.sh
34+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Run AWS S3 integration tests (IAM role)
2+
description: Runs AWS S3 IAM role integration tests in Lambda using label-based selection.
3+
4+
inputs:
5+
access_key_id:
6+
description: 'AWS Access Key ID'
7+
required: true
8+
secret_access_key:
9+
description: 'AWS Secret Access Key'
10+
required: true
11+
region_name:
12+
description: 'AWS Region Name'
13+
required: true
14+
stack_name:
15+
description: 'CloudFormation Stack Name'
16+
required: true
17+
label_filter:
18+
description: 'Ginkgo Label Filter for tests to run'
19+
required: true
20+
21+
runs:
22+
using: 'composite'
23+
steps:
24+
- name: Run AWS S3 IAM integration tests
25+
shell: bash
26+
run: |
27+
set -e
28+
export access_key_id="${{inputs.access_key_id}}"
29+
export secret_access_key="${{inputs.secret_access_key}}"
30+
export region_name="${{inputs.region_name}}"
31+
export stack_name="${{inputs.stack_name}}"
32+
export label_filter="${{inputs.label_filter}}"
33+
./.github/scripts/s3/run-integration-aws-iam.sh
34+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Run AWS S3 integration tests (standard)
2+
description: Runs AWS S3 integration tests using static credentials and label-based selection.
3+
4+
inputs:
5+
access_key_id:
6+
description: 'AWS Access Key ID'
7+
required: true
8+
secret_access_key:
9+
description: 'AWS Secret Access Key'
10+
required: true
11+
region_name:
12+
description: 'AWS Region Name'
13+
required: true
14+
stack_name:
15+
description: 'CloudFormation Stack Name'
16+
required: true
17+
label_filter:
18+
description: 'Ginkgo Label Filter for tests to run'
19+
required: true
20+
s3_endpoint_host:
21+
description: 'Custom S3 Endpoint Host'
22+
required: false
23+
role_arn:
24+
description: 'AWS Role ARN used for cross-account profile setup when needed'
25+
required: false
26+
default: ''
27+
28+
runs:
29+
using: 'composite'
30+
steps:
31+
- name: Run AWS S3 standard integration tests
32+
shell: bash
33+
run: |
34+
set -e
35+
export access_key_id="${{inputs.access_key_id}}"
36+
export secret_access_key="${{inputs.secret_access_key}}"
37+
export region_name="${{inputs.region_name}}"
38+
export stack_name="${{inputs.stack_name}}"
39+
export s3_endpoint_host="${{inputs.s3_endpoint_host}}"
40+
export role_arn="${{inputs.role_arn}}"
41+
export label_filter="${{inputs.label_filter}}"
42+
./.github/scripts/s3/run-integration-aws.sh
43+

.github/actions/s3-integration-run/action.yml

Lines changed: 0 additions & 63 deletions
This file was deleted.

.github/workflows/s3-integration.yml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,36 +46,32 @@ jobs:
4646
stack_name: ${{ env.STACK_NAME }}
4747

4848
- name: Test Static Credentials
49-
uses: ./.github/actions/s3-integration-run
49+
uses: ./.github/actions/s3-integration-run-aws
5050
with:
5151
access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
5252
secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
5353
region_name: ${{ env.REGION_NAME }}
5454
stack_name: ${{ env.STACK_NAME }}
5555
s3_endpoint_host: ${{ env.S3_ENDPOINT_HOST }}
5656
label_filter: 'aws && static && (general || us-east-1)'
57-
test_type: 'aws'
5857

5958
- name: Test IAM Roles
60-
uses: ./.github/actions/s3-integration-run
59+
uses: ./.github/actions/s3-integration-run-aws-iam
6160
with:
6261
access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
6362
secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
6463
region_name: ${{ env.REGION_NAME }}
6564
stack_name: ${{ env.STACK_NAME }}
6665
label_filter: 'aws && iam-role'
67-
test_type: 'aws-iam'
6866

6967
- name: Test Assume Roles
70-
uses: ./.github/actions/s3-integration-run
68+
uses: ./.github/actions/s3-integration-run-aws-assume
7169
with:
7270
access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
7371
secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
7472
region_name: ${{ env.REGION_NAME }}
75-
stack_name: ${{ env.STACK_NAME }}
7673
role_arn: ${{ secrets.AWS_ROLE_ARN }}
7774
label_filter: 'aws && assume-role'
78-
test_type: 'aws-assume'
7975

8076
- name: Teardown AWS infrastructure
8177
if: always()
@@ -133,15 +129,14 @@ jobs:
133129
stack_name: ${{ matrix.stack_name }}
134130

135131
- name: Run regional tests
136-
uses: ./.github/actions/s3-integration-run
132+
uses: ./.github/actions/s3-integration-run-aws
137133
with:
138134
access_key_id: ${{ matrix.use_esc_credentials && secrets.AWS_ESC_ACCESS_KEY_ID || secrets.AWS_ACCESS_KEY_ID }}
139135
secret_access_key: ${{ matrix.use_esc_credentials && secrets.AWS_ESC_SECRET_ACCESS_KEY || secrets.AWS_SECRET_ACCESS_KEY }}
140136
region_name: ${{ matrix.region_name }}
141137
stack_name: ${{ matrix.stack_name }}
142138
s3_endpoint_host: ${{ matrix.s3_endpoint_host }}
143139
label_filter: ${{ matrix.label_filter }}
144-
test_type: 'aws'
145140

146141
- name: Teardown AWS infrastructure
147142
if: always()

0 commit comments

Comments
 (0)