mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-19 11:06:17 +00:00
ci(s3-tests): add mint workflow, multi-node sweep, and API coverage tool (#4206)
Follow-ups to the compatibility harness rework: - Weekly full sweep now runs as a matrix over both topologies: single node and the 4-node distributed cluster. Manual dispatch keeps the test-mode input. - New mint workflow (weekly + dispatch) runs MinIO Mint against RustFS: functional suites of real client SDKs and tools (awscli, mc, aws-sdk-*, minio-*, s3cmd, ...), catching client-specific signing and streaming edge cases that boto3-only ceph/s3-tests cannot. Report-only for test failures with a per-suite summary table; fails only when mint produces no results. - New scripts/s3-tests/api_coverage.py quantifies API surface coverage by diffing the s3s S3 trait (at the Cargo.toml pinned revision) against the methods overridden in impl S3 for FS, distinguishing NotImplemented defaults from delegating defaults (e.g. post_object). Current state: 76/101 operations covered (75 overridden, 1 delegated). Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -63,7 +63,8 @@ on:
|
||||
required: false
|
||||
default: ""
|
||||
schedule:
|
||||
# Weekly full sweep (Sunday 02:00 UTC): full suite, single-node topology.
|
||||
# Weekly full sweep (Sunday 02:00 UTC): full suite, run against BOTH the
|
||||
# single-node and the 4-node distributed topologies (matrix below).
|
||||
- cron: "0 2 * * 0"
|
||||
|
||||
env:
|
||||
@@ -82,8 +83,7 @@ env:
|
||||
PLATFORM: linux/amd64
|
||||
BUILDX_CACHE_SCOPE: rustfs-e2e-s3tests-source
|
||||
|
||||
# Scheduled runs have no inputs; default to a single-node full sweep.
|
||||
TEST_MODE: ${{ github.event.inputs.test-mode || 'single' }}
|
||||
# Scheduled runs have no inputs; default to a full sweep.
|
||||
TEST_SCOPE: ${{ github.event.inputs.scope || 'all' }}
|
||||
XDIST: ${{ github.event.inputs.xdist || '4' }}
|
||||
MAXFAIL: ${{ github.event.inputs.maxfail || '0' }}
|
||||
@@ -101,6 +101,13 @@ jobs:
|
||||
s3tests:
|
||||
runs-on: ubicloud-standard-4
|
||||
timeout-minutes: 180
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Scheduled sweeps cover both topologies; manual runs use the input.
|
||||
test-mode: ${{ github.event_name == 'schedule' && fromJSON('["single", "multi"]') || fromJSON(format('["{0}"]', github.event.inputs.test-mode || 'single')) }}
|
||||
env:
|
||||
TEST_MODE: ${{ matrix.test-mode }}
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
|
||||
|
||||
|
||||
Reference in New Issue
Block a user