chore(ci): turn on the E2E skip-discipline check, first app in the fleet - #354
Merged
Merged
Conversation
`e2e-skip-blocking` exists in the shared quality workflow and is enabled
in ZERO of the 21 fleet apps. It has never been on anywhere.
Its own description says to flip it per app once that app is worked down,
so that it "can then only stay clean". launchpad is the app to start
with: its last E2E run on development was 137 passed, 0 skipped.
Why it matters, measured today:
- The CI log prints skip COUNTS with no reasons. A runtime
`test.skip(cond, reason)` is visible ONLY in the Playwright report,
which is exactly what this check reads. So today a broken fixture and
a legitimate skip are indistinguishable after the fact.
- 178 skipped specs across five apps: buildiq 62, decidiq 46, dossiq
37, shillinq 21, integriq 12.
- decidiq's integration-registry.spec.ts skips 21 tests on
`test.skip(!first, 'no meeting objects on this instance')`. The CI
seeder deliberately provisions registers and schemas only, so that
condition means "no earlier spec happened to create a meeting" --
a seeding-order problem, reported as 21 passes.
This is opened as a PR rather than pushed, so the gate runs against
launchpad here and reports its verdict before it can redden development.
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
August 27, 2026 13:33
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-27 16:07 UTC
Download the full PDF report from the workflow artifacts.
This was referenced Aug 28, 2026
rubenvdlinde
added a commit
that referenced
this pull request
Aug 28, 2026
…#366) #354 turned this on. #356 removed it 16 minutes later while rewriting this file's triggers -- not a revert, just two edits landing together and one line not surviving. Worth restoring now for a better reason than the first time. When #354 merged, the gate was a NO-OP: it could not find check_e2e_skips.py and warned instead of failing, so launchpad looked like it was enforcing skip discipline while measuring nothing. Three fixes later it genuinely runs: - hydra-gates v1.10.0 cut, containing the script (#359 vendored it) - ConductionNL/.github#595 fixed the lookup path, which had omitted the inner hydra-gates/ segment composer installs under, and made a missing gate a hard failure instead of a warning On development's current head the gate EXECUTED and reported: 0/137 tests skipped (0.0%) across 30 spec files V1 spec files executing ZERO tests : 0 V2 skips deferring to a deploy state CI decides: 0 V3 skips/fixmes with no reason recorded : 0 Every skip names a real absence and every spec file ran something. That answers the open question from #354: tests/e2e/docs-screenshots.spec.ts does NOT trip the zero-test rule. So this is measured, not hoped for. launchpad passes on real data, and the flag can only keep it that way -- which is exactly what the input's own description asks for: flip it per app once that app is worked down. Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
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.
e2e-skip-blockingexists in the shared quality workflow and is enabledin ZERO of the 21 fleet apps. It has never been on anywhere.
Its own description says to flip it per app once that app is worked down,
so that it "can then only stay clean". launchpad is the app to start
with: its last E2E run on development was 137 passed, 0 skipped.
Why it matters, measured today:
The CI log prints skip COUNTS with no reasons. A runtime
test.skip(cond, reason)is visible ONLY in the Playwright report,which is exactly what this check reads. So today a broken fixture and
a legitimate skip are indistinguishable after the fact.
178 skipped specs across five apps: buildiq 62, decidiq 46, dossiq
37, shillinq 21, integriq 12.
decidiq's integration-registry.spec.ts skips 21 tests on
test.skip(!first, 'no meeting objects on this instance'). The CIseeder deliberately provisions registers and schemas only, so that
condition means "no earlier spec happened to create a meeting" --
a seeding-order problem, reported as 21 passes.
This is opened as a PR rather than pushed, so the gate runs against
launchpad here and reports its verdict before it can redden development.