Skip to content

Fix the UiRenderSmoke golden probe and run the full CI matrix on every PR - #92

Merged
offdev merged 1 commit into
masterfrom
fix/ci-all-pipelines
Oct 11, 2026
Merged

offdev merged 1 commit into
masterfrom
fix/ci-all-pipelines

Conversation

@offdev

@offdev offdev commented Oct 11, 2026

Copy link
Copy Markdown
Owner

What broke

The merge run of #91 (38163032436) failed 4/4 Linux lanes on a single
test, UiRenderSmoke.GoldenUiScene. The "P red" exact probe reads pixel
(20, 20), but the smoke scene's button (16, 16, 20x14, green uv,
declared after the panel, drawn on top by the monotone-z contract)
covers every panel pixel with x, y >= 16. The correct color at (20, 20)
is the button's green, so the probe failed on every Linux lane while
the full-frame CPU-reference comparison reported mismatches=0 (the
reference inherits the quad UVs from the batcher, so it cannot catch
the intent error — only the hardcoded probes can). Test bug, not
engine.

Changes

  1. tests/laige-render/ui_render_tests.cpp: probe moved (20, 20) ->
    (12, 12), inside the panel and outside the button, with a comment
    recording the occlusion.
  2. .github/workflows/ci-pull.yml: the PR lane now runs the SAME
    eleven jobs as the merge lane, unconditionally — the four Linux
    trees, Windows, both macOS lanes, and the four tooling jobs. The
    ci:windows / ci:macos label selector is removed from both
    workflows: no job is gated on a label, no test is ever skipped.
    The PR-lane sanitizer jobs upload no artifacts (the pull_request
    token is read-only, including fork PRs); their tee'd ctest output
    keeps every sanitizer report in the job log, and the merge lane
    still archives artifacts.
  3. AGENTS.md section 5: new "Local Linux test gate" — before any
    push to GitHub, all four Linux CI trees (g++, clang++,
    ASan+UBSan, TSan) must be built and their full unfiltered ctest
    suites must pass locally, in parallel when the machine allows.

Verification (local gate, before push)

  • gate-gcc 121/121, gate-clang 121/121, gate-asan 118/118, gate-tsan
    118/118 (full unfiltered ctest per tree, parallel trees)
  • include-lint, determinism-lint, laige-api-scanner manifest check
    (1688 symbols), laige-detcheck synthetic: all OK
  • Both workflow files parse: 11 jobs each, zero job conditions

Note: GitHub runs a PR's workflow from the base branch, so the new
ci-pull.yml takes effect from the next PR. This PR carries both
labels, so the old-lane macOS jobs run here; the four Linux trees are
verified by the local gate above and by the merge lane after merge
(all 11 jobs, including the fixed probe).

…y PR

The 'P red' probe of UiRenderSmoke.GoldenUiScene read pixel (20, 20),
which the smoke scene's button (16, 16, 20 x 14, green uv, declared
after the panel, drawn on top by the monotone-z contract) covers: the
correct color there is the button's green, so the probe failed on all
four Linux lanes of the merge run (run 38163032436) while the
full-frame CPU-reference comparison reported zero mismatches (the
reference inherits the quad UVs and cannot catch the intent error).
The probe now reads (12, 12), inside the panel and outside the
button.

The PR lane (.github/workflows/ci-pull.yml) now runs the same eleven
jobs as the merge lane, unconditionally: the four Linux trees,
Windows, both macOS lanes, and the four tooling jobs. The
ci:windows / ci:macos label selector is removed from both workflows:
no job is gated on a label and no test is ever skipped. The PR-lane
sanitizer jobs upload no artifacts (the pull_request token is
read-only, including fork PRs); their tee'd ctest output keeps every
sanitizer report in the job log, and the merge lane still archives
artifacts.

AGENTS.md section 5 gains the local Linux test gate: before any push
to GitHub, all four Linux CI trees (g++, clang++, ASan+UBSan, TSan)
must be built and their full unfiltered ctest suites must pass
locally, in parallel when the machine allows.
@offdev
offdev merged commit 656d584 into master Oct 11, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant