From 134450519c90d4601c6ceed0f3adfaff3259bf33 Mon Sep 17 00:00:00 2001 From: Ming Wen Date: Sun, 26 Apr 2026 12:32:32 +0800 Subject: [PATCH] ci: soft-fail coverage-gate while artifact quota persists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After PR #40, the workflow conclusion is still 'failure' because the coverage-gate job fails when its first download-artifact (coverage-unit) can't find an artifact — that artifact's upload is currently soft-failed on the rust-unit job due to the GH Actions storage quota outage. The coverage-gate threshold check itself is already a soft gate (the bash exits 0 even on below-threshold; see comment on the merge step). Align the job-level setting with that intent: continue-on-error so a failure doesn't make the whole workflow red. Also mark the first download-artifact step continue-on-error so missing input doesn't prevent the threshold step (which already tolerates an empty cov/e2e directory). Revert with the other quota mitigations once GH storage usage refreshes or the quota is raised. --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd771837..2b130f86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -211,9 +211,17 @@ jobs: name: coverage >= 90% needs: [rust-unit, e2e] runs-on: ubuntu-latest + # The threshold check itself is already a soft gate (the bash logic + # exits 0 even when below threshold; see comment on the merge step). + # Aligning the job-level setting with that intent: don't fail the + # workflow when coverage-gate fails — especially while the artifact + # storage quota outage prevents the upstream coverage-unit upload. + # Revert when the gate is flipped from advisory to gating (PR #5). + continue-on-error: true steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 + continue-on-error: true with: { name: coverage-unit, path: cov/unit } - uses: actions/download-artifact@v4 continue-on-error: true