ci(quality): stop the release PR cancelling every push run on development - #746
Merged
Merged
Conversation
The standing 'Release: merge development into beta' PR has head_ref 'development', so its pull_request run rendered the same concurrency group as a push to development. cancel-in-progress killed the push run, which is the only carrier of the push-only jobs (Coverage Baseline Check, SBOM, Features Extract). Those jobs report 'skipped' on the surviving PR run, which renders like a pass, so the gate never produced a verdict. Suffixes -push on the group for main/development pushes only; feature-branch dedup is unchanged. No gate weakened: no waiver, baseline, threshold or continue-on-error. Same fix as openconnector#1158.
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
August 6, 2026 05:10
Contributor
Quality Report — ConductionNL/procest @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-vue3-compile | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 550/550 | |||
| PHPUnit | ✅ | ||||
| Newman | ⏭️ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ❌ |
Quality workflow — 2026-08-06 05:34 UTC
Download the full PDF report from the workflow artifacts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The defect
A push to
developmenthas no head ref, so the group rendersquality-development.developmentalso permanently has an open PR — the standing "Release: merge development into beta" — and that PR'shead_refis literallydevelopment. Its run renders the same group.cancel-in-progressthen kills whichever started first, and that is always the push run: it is created a few seconds earlier.The push run is the only carrier of the push-only jobs in the shared
quality.yml:Coverage Baseline Checkgithub.event_name == 'push'&& ref is main/developmentSBOMFeatures Extractgithub.event_name != 'pull_request'On the surviving PR run
Coverage Baseline Checkreportsskipped— which is correct, it is a push-only job on apull_requestevent — and a skipped job renders just like a passing one. So the gate appears on both runs and executes on neither. That is the permanently-pending shape of a dead gate, and a cancelled run is no verdict at all.Fix
The dedup is worth keeping. For a feature branch the push run and the PR run genuinely are the same jobs twice, and cancelling one is the point of the block. It is only wrong for
mainanddevelopment, where the push run is not a duplicate.developmentquality-developmentquality-development-pushdevelopment)quality-developmentquality-developmentmainquality-mainquality-main-pushfeature/xquality-feature/xquality-feature/xfeature/xquality-feature/xquality-feature/xFeature-branch dedup is untouched, so this adds no CI cost there. It adds one extra run per merge to
main/development— the run that was supposed to exist all along.Precedent
Identical to openconnector#1158, whose proof was that repo's first-ever completed
developmentpush run (31048998594), whereCoverage Baseline Check,SBOMandFeatures Extractall executed and reportedsuccess.Verification
Reading the expression is not evidence. The check is end-to-end: after this lands, the
developmentpush run must complete rather than be cancelled, and the push-only jobs must execute rather than skip. I will confirm on the merge commit and report the run id. If the push run is still cancelled, this fix is wrong and should be reverted rather than papered over.Nothing here weakens a gate: no baseline widened, no waiver, no threshold moved, no
continue-on-error, no skip.