Fix: CI pipeline failures on master branch due to brittle status-check job #11145

Closed
freemo wants to merge 2 commits from fix/ci-status-check-resilience into master

2 Commits

Author SHA1 Message Date
freemo cca0320545 fix(ci): resolve PR grooming feedback for CI resilience fix
CI / helm (pull_request) Successful in 47s
CI / push-validation (pull_request) Successful in 1m12s
CI / build (pull_request) Successful in 1m16s
CI / lint (pull_request) Failing after 1m36s
CI / typecheck (pull_request) Successful in 1m54s
CI / quality (pull_request) Successful in 1m52s
CI / security (pull_request) Successful in 2m4s
CI / integration_tests (pull_request) Successful in 3m43s
CI / unit_tests (pull_request) Failing after 5m8s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 5s
- Corrected BDD scenario Then steps to match scenario titles (skipped vs cancelled)
- Fixed misleading assertion messages in step definitions
- Consistent error messaging across all failure-based checking steps

Closes #11145
2026-05-14 07:06:54 +00:00
freemo 1f4ef55c40 fix(ci): make status-check resilient to skipped, cancelled, and error states (Closes #8797)
CI / lint (pull_request) Failing after 59s
CI / typecheck (pull_request) Successful in 1m18s
CI / security (pull_request) Successful in 1m18s
CI / quality (pull_request) Successful in 48s
CI / helm (pull_request) Successful in 44s
CI / push-validation (pull_request) Successful in 43s
CI / build (pull_request) Successful in 1m13s
CI / integration_tests (pull_request) Successful in 5m13s
CI / unit_tests (pull_request) Failing after 6m18s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 3s
Refactored the status-check job in .forgejo/workflows/ci.yml so it passes
when dependent jobs are skipped, cancelled, or in an error state while still
failing on genuine failures. Changed all != "success" checks to individual
== "failure" || == "error" checks that only exit with code 1 when at least
one job has a true failure or error result. Skipped and cancelled jobs are
treated as non-failing, making the pipeline robust against path filter skips,
timeouts, runner OOM crashes, and infrastructure failures.

BDD test coverage added in ci_workflow_validation.feature:
- Status-check uses failure-based logic with error handling
- Status-check passes on skipped dependent jobs
- Status-check passes on cancelled dependent jobs
- Status-check fails on actually failed jobs  (all individually verifiable)
- Status-check uses failure-based checking

Step definitions updated with corrected assertion messages that accurately
describe failure conditions rather than misleadingly describing success.

Fixes #8797 via PR #11145.
2026-05-13 08:06:06 +00:00