mirror of
https://github.com/rustfs/rustfs.git
synced 2026-10-03 12:10:50 +00:00
ci(chain): stop gating all suites on the performance runner (#7924)
ci(chain): gate the performance lane on its fleet probe (rebase + contract) Rebased onto latest main; adds the contract-test update that the first push of this branch missed: - test_functional_chain: the performance lane now asserts the new probe-gated 'if' (prepare success AND performance_ready == online); the other nine lanes keep the plain prepare gate; prepare must carry the two preflight steps (hard smoke-testing check, pf-testing probe) and publish the performance_ready output Carried over unchanged from the previous push: per-fleet preflight (prepare hard-fails only on smoke-testing), the pf-testing probe step, the probe-gated performance lane, and aggregate's --allow-skipped (permitted skips shrink the evidence set; unpermitted skips still fail aggregation). Chain contract tests: 27/27 locally.
This commit is contained in:
@@ -46,6 +46,7 @@ jobs:
|
||||
timeout-minutes: 10
|
||||
outputs:
|
||||
manifest: ${{ steps.candidate.outputs.manifest }}
|
||||
performance_ready: ${{ steps.perf_probe.outputs.performance_ready }}
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
|
||||
with:
|
||||
@@ -65,10 +66,25 @@ jobs:
|
||||
path: ${{ runner.temp }}/chain-candidate.json
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Check shared functional runners before scheduling suites
|
||||
- name: Check shared functional fleet runner before scheduling suites
|
||||
# The nine functional suites run on the smoke-testing fleet; a hard
|
||||
# requirement. The performance lane runs on pf-testing, which is a
|
||||
# separate fleet - probe it without failing the whole chain so an
|
||||
# offline performance runner skips only the performance lane.
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PF_TESTING_GH_TOKEN }}
|
||||
run: python3 scripts/check_functional_runners.py smoke-testing pf-testing
|
||||
run: python3 scripts/check_functional_runners.py smoke-testing
|
||||
|
||||
- name: Probe performance fleet runner
|
||||
id: perf_probe
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PF_TESTING_GH_TOKEN }}
|
||||
run: |
|
||||
if python3 scripts/check_functional_runners.py pf-testing; then
|
||||
echo "performance_ready=online" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "performance_ready=offline" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
upgrade:
|
||||
needs: [prepare]
|
||||
@@ -144,7 +160,7 @@ jobs:
|
||||
|
||||
performance:
|
||||
needs: [prepare, replication]
|
||||
if: ${{ always() && needs.prepare.result == 'success' }}
|
||||
if: ${{ always() && needs.prepare.result == 'success' && needs.prepare.outputs.performance_ready == 'online' }}
|
||||
uses: ./.github/workflows/rustfs-performance-test.yml
|
||||
with:
|
||||
chain_manifest: ${{ needs.prepare.outputs.manifest }}
|
||||
@@ -192,6 +208,7 @@ jobs:
|
||||
CHAIN_NEEDS: ${{ toJSON(needs) }}
|
||||
run: >-
|
||||
python3 scripts/functional_chain_evidence.py aggregate
|
||||
--allow-skipped "${{ needs.prepare.outputs.performance_ready == 'online' && '' || 'performance' }}"
|
||||
--directory "${RUNNER_TEMP}/chain-evidence"
|
||||
--output "${RUNNER_TEMP}/chain-complete.json"
|
||||
- name: Upload complete-chain evidence
|
||||
|
||||
Reference in New Issue
Block a user