Skip to content

Commit aad91bc

Browse files
authored
Split up client and fs integration tests in CI (#1523)
Organize the integration test workflows in two groups: 1. Client tests, for the `mountpoint-s3-client` crate (and its dependencies: `mountpoint-s3-crt` and `mountpoint-s3-crt-sys`) 2. FS tests, for `mountpoint-s3-fs` and `mountpoint-s3` Both groups define a matrix strategy across runners and S3 buckets. Additionally, the first group adds a dimension for the memory pool (currently default and test pool), while the second runs tests with FUSE 2 and 3. ### Does this change impact existing behavior? No, CI change only. ### Does this change need a changelog entry? Does it require a version change? No. --- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). --------- Signed-off-by: Alessandro Passaro <[email protected]>
1 parent c02f9f4 commit aad91bc

File tree

1 file changed

+20
-64
lines changed

1 file changed

+20
-64
lines changed

.github/workflows/integration.yml

Lines changed: 20 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -37,84 +37,39 @@ env:
3737
S3_EXPRESS_ONE_ZONE_BUCKET_NAME_EXTERNAL: ${{ vars.S3_EXPRESS_ONE_ZONE_BUCKET_NAME_EXTERNAL }}
3838
KMS_TEST_KEY_ID: ${{ vars.KMS_TEST_KEY_ID }}
3939
S3_EXPRESS_ONE_ZONE_BUCKET_NAME_SSE_KMS: ${{ vars.S3_EXPRESS_ONE_ZONE_BUCKET_NAME_SSE_KMS }}
40-
RUST_FEATURES: fuse_tests,s3_tests,fips_tests,event_log,second_account_tests,manifest
4140

4241
permissions:
4342
id-token: write
4443
contents: read
4544

4645
jobs:
4746
test:
48-
name: Tests (${{ matrix.runner.name }}, FUSE ${{ matrix.fuseVersion }})
49-
runs-on: ${{ matrix.runner.tags }}
50-
51-
environment: ${{ inputs.environment }}
52-
53-
strategy:
54-
fail-fast: false
55-
matrix:
56-
fuseVersion: [2, 3]
57-
runner:
58-
- name: Ubuntu x86
59-
tags: [ubuntu-22.04] # GitHub-hosted
60-
- name: Amazon Linux arm
61-
tags: [self-hosted, linux, arm64]
62-
exclude:
63-
# fuse3 is not available on Amazon Linux 2
64-
- runner:
65-
name: Amazon Linux arm
66-
tags: [self-hosted, linux, arm64]
67-
fuseVersion: 3
68-
69-
steps:
70-
- name: Configure AWS credentials
71-
uses: aws-actions/configure-aws-credentials@v4
72-
with:
73-
role-to-assume: ${{ vars.ACTIONS_IAM_ROLE }}
74-
aws-region: ${{ vars.S3_REGION }}
75-
- name: Checkout code
76-
uses: actions/checkout@v4
77-
with:
78-
ref: ${{ inputs.ref }}
79-
submodules: true
80-
persist-credentials: false
81-
- name: Set up Rust toolchain
82-
uses: actions-rust-lang/setup-rust-toolchain@v1
83-
with:
84-
# setup-rust-toolchain sets "-D warnings" by default, and Rust treats any warning as compile error.
85-
# We need to this currently because `mountpoint-s3-fuser` contains some warnings and it breaks the build.
86-
rustflags: ""
87-
- name: Install operating system dependencies
88-
uses: ./.github/actions/install-dependencies
89-
with:
90-
fuseVersion: ${{ matrix.fuseVersion }}
91-
- name: Build tests
92-
run: cargo test --features $RUST_FEATURES --no-run
93-
- name: Run tests
94-
run: cargo test --features $RUST_FEATURES
95-
- name: Save dump files
96-
if: ${{ failure() && matrix.runner.name == 'Amazon Linux arm' }}
97-
run: ./.github/actions/scripts/save-coredump.sh
98-
99-
s3express-test:
100-
name: S3 Express One Zone tests (${{ matrix.runner.name }}, FUSE ${{ matrix.fuseVersion }})
47+
name: FS Tests (${{ matrix.bucket-type.name }}, ${{ matrix.runner.name }}, FUSE ${{ matrix.fuseVersion }})
10148
runs-on: ${{ matrix.runner.tags }}
10249

10350
environment: ${{ inputs.environment }}
51+
env:
52+
features: fuse_tests,s3_tests,fips_tests,event_log,second_account_tests,manifest,${{ matrix.bucket-type.feature }}
53+
packages: --package mountpoint-s3 --package mountpoint-s3-fs
10454

10555
strategy:
10656
fail-fast: false
10757
matrix:
58+
bucket-type:
59+
- name: S3
60+
feature:
61+
- name: S3XOZ
62+
feature: s3express_tests
10863
fuseVersion: [2, 3]
10964
runner:
11065
- name: Ubuntu x86
11166
tags: [ubuntu-22.04] # GitHub-hosted
112-
- name: Amazon Linux arm
67+
- name: AL2 arm
11368
tags: [self-hosted, linux, arm64]
11469
exclude:
11570
# fuse3 is not available on Amazon Linux 2
11671
- runner:
117-
name: Amazon Linux arm
72+
name: AL2 arm
11873
tags: [self-hosted, linux, arm64]
11974
fuseVersion: 3
12075

@@ -141,14 +96,13 @@ jobs:
14196
with:
14297
fuseVersion: ${{ matrix.fuseVersion }}
14398
- name: Build tests
144-
run: cargo test --features '${{ env.RUST_FEATURES }},s3express_tests' --no-run
99+
run: cargo test ${{ env.packages }} --features '${{ env.features }}' --no-run
145100
- name: Run tests
146-
run: cargo test --features '${{ env.RUST_FEATURES }},s3express_tests'
101+
run: cargo test ${{ env.packages }} --features '${{ env.features }}'
147102
- name: Save dump files
148-
if: ${{ failure() && matrix.runner.name == 'Amazon Linux arm' }}
103+
if: ${{ failure() && matrix.runner.name == 'AL2 arm' }}
149104
run: ./.github/actions/scripts/save-coredump.sh
150105

151-
152106
client-test:
153107
name: Client Tests (${{ matrix.bucket-type.name }}, ${{ matrix.runner.name }}, ${{ matrix.pool.name }})
154108
runs-on: ${{ matrix.runner.tags }}
@@ -164,14 +118,16 @@ jobs:
164118
bucket-type:
165119
- name: S3
166120
feature:
167-
- name: S3 Express One Zone
121+
- name: S3XOZ
168122
feature: s3express_tests
169123
runner:
170124
- name: Ubuntu x86
171125
tags: [ubuntu-22.04] # GitHub-hosted
172-
- name: Amazon Linux arm
126+
- name: AL2 arm
173127
tags: [self-hosted, linux, arm64]
174128
pool:
129+
- name: Default Pool
130+
feature:
175131
- name: Test Pool
176132
feature: pool_tests
177133

@@ -203,7 +159,7 @@ jobs:
203159
- name: Run tests
204160
run: cargo test ${{ env.packages }} --features '${{ env.features }}'
205161
- name: Save dump files
206-
if: ${{ failure() && matrix.runner.name == 'Amazon Linux arm' }}
162+
if: ${{ failure() && matrix.runner.name == 'AL2 arm' }}
207163
run: ./.github/actions/scripts/save-coredump.sh
208164

209165
fstab:
@@ -219,7 +175,7 @@ jobs:
219175
runner:
220176
- name: Ubuntu x86
221177
tags: [ubuntu-22.04] # GitHub-hosted
222-
- name: Amazon Linux arm
178+
- name: AL2 arm
223179
tags: [self-hosted, linux, arm64]
224180

225181
steps:

0 commit comments

Comments
 (0)