fix(ci): avoid PR pending traps in CI sentinel
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 33s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 20s
CI / Detect changes (pull_request) Successful in 1m16s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m6s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m9s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 30s
qa-review / approved (pull_request) Successful in 22s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m24s
gate-check-v3 / gate-check (pull_request) Successful in 46s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m1s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 2m19s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m12s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m47s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m23s
sop-tier-check / tier-check (pull_request) Successful in 43s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 50s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 19s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 25s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 12s
security-review / approved (pull_request) Failing after 13m50s
sop-checklist-gate / gate (pull_request) Failing after 13m44s
CI / Python Lint & Test (pull_request) Successful in 8m48s
CI / Canvas (Next.js) (pull_request) Successful in 20m39s
CI / Platform (Go) (pull_request) Successful in 21m34s
CI / Canvas Deploy Reminder (pull_request) Successful in 6s
CI / all-required (pull_request) Successful in 3s
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 33s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 20s
CI / Detect changes (pull_request) Successful in 1m16s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m6s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m9s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 30s
qa-review / approved (pull_request) Successful in 22s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m24s
gate-check-v3 / gate-check (pull_request) Successful in 46s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m1s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 2m19s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m12s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m47s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m23s
sop-tier-check / tier-check (pull_request) Successful in 43s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 50s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 19s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 25s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 12s
security-review / approved (pull_request) Failing after 13m50s
sop-checklist-gate / gate (pull_request) Failing after 13m44s
CI / Python Lint & Test (pull_request) Successful in 8m48s
CI / Canvas (Next.js) (pull_request) Successful in 20m39s
CI / Platform (Go) (pull_request) Successful in 21m34s
CI / Canvas Deploy Reminder (pull_request) Successful in 6s
CI / all-required (pull_request) Successful in 3s
This commit is contained in:
parent
a2bb20f048
commit
cae79c62ea
@ -380,17 +380,27 @@ jobs:
|
||||
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
||||
continue-on-error: true
|
||||
needs: [changes, canvas-build]
|
||||
# Only fires on direct pushes to main (i.e. after staging→main promotion).
|
||||
if: needs.changes.outputs.canvas == 'true' && github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||
# Keep the job itself always runnable. Gitea 1.22.6 leaves job-level
|
||||
# event/ref `if:` gates as pending on PRs, which blocks the combined
|
||||
# status even though this reminder is intentionally non-required.
|
||||
steps:
|
||||
- name: Write deploy reminder to step summary
|
||||
env:
|
||||
COMMIT_SHA: ${{ github.sha }}
|
||||
CANVAS_CHANGED: ${{ needs.changes.outputs.canvas }}
|
||||
EVENT_NAME: ${{ github.event_name }}
|
||||
REF_NAME: ${{ github.ref }}
|
||||
# github.server_url resolves via the workflow-level env override
|
||||
# to the Gitea instance, so the RUN_URL points at the Gitea run
|
||||
# page (not github.com). See feedback_act_runner_github_server_url.
|
||||
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if [ "$CANVAS_CHANGED" != "true" ] || [ "$EVENT_NAME" != "push" ] || [ "$REF_NAME" != "refs/heads/main" ]; then
|
||||
echo "Canvas deploy reminder not applicable for event=$EVENT_NAME ref=$REF_NAME canvas_changed=$CANVAS_CHANGED."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Write body to a temp file — avoids backtick escaping in shell.
|
||||
cat > /tmp/deploy-reminder.md << 'BODY'
|
||||
## Canvas build passed — deploy required
|
||||
@ -535,11 +545,10 @@ jobs:
|
||||
# hourly if this list diverges from status_check_contexts or from
|
||||
# audit-force-merge.yml's REQUIRED_CHECKS env (RFC §4 + §6).
|
||||
#
|
||||
# Excluded from `needs:`: `canvas-deploy-reminder` — gated by
|
||||
# `if: ... github.event_name == 'push' && github.ref == 'refs/heads/main'`,
|
||||
# so on PR events it's legitimately `skipped`. The drift detector
|
||||
# explicitly excludes `github.event_name`-gated jobs from F1 (see
|
||||
# `.gitea/scripts/ci-required-drift.py::ci_job_names`).
|
||||
# Excluded from `needs:`: `canvas-deploy-reminder` — it is an
|
||||
# operational reminder, not a CI prerequisite. Keep that job runnable
|
||||
# on PRs with an internal no-op guard; job-level event/ref `if:` gates
|
||||
# are a Gitea 1.22.6 pending-status trap.
|
||||
#
|
||||
# Phase 3 (RFC #219 §1) safety: underlying build jobs carry
|
||||
# continue-on-error: true so their failures are masked to null (2026-05-12: re-enabled mc#774 interim)
|
||||
@ -559,7 +568,7 @@ jobs:
|
||||
- canvas-build
|
||||
- shellcheck
|
||||
- python-lint
|
||||
if: always()
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Assert every required dependency succeeded
|
||||
run: |
|
||||
|
||||
Loading…
Reference in New Issue
Block a user