ci: run the check job on the dev runner label #99

Merged
Claude-Run merged 1 commit from fix/VAPP-92-check-dev-runner-label into main 2026-08-02 01:38:49 +02:00
Member

The check job compiles Rust natively on the runner (fmt, clippy, cargo check for host and wasm, and the host-target test binary), so it needs the cc/ld toolchain that only the opensuse-dev image ships. On the base label the first cold-cache run fails at link time with error: linker `cc` not found; a warm Swatinem/rust-cache hides it. Same fix already applied in claude-run (#CLAUDE-203), the shared reusable workflow (#PC-11), help-dashboard (#HD-11), and the sibling repo vervain-server, whose check.yml on main already requests RUNS_ON_OPENSUSE_DEV_LATEST.

Every other runs-on in .forgejo/workflows/ was classified and stays on the base label with the reason recorded inline: build-desktop-linux.yml, build-desktop-windows.yml and build-oci-image.yml compile inside docker buildx build (the runner only needs docker, git and nu), and create-release.yml only runs git plus Forgejo API calls.

src/components/runner_label_guard.rs embeds all five workflows and enforces the invariant mechanically, matching the existing *_guard test idiom: check.yml must request the dev label and must not mention the base label, and every runs-on line in every workflow must be preceded by a comment stating its reason. Verified in both directions by flipping check.yml back to base and deleting one reason comment, which fails both tests.

The justfile comment on dev_image said the pre-commit image matched the opensuse-base CI runner; updated so it no longer names the wrong runner for check.yml.

#VAPP-92

The check job compiles Rust natively on the runner (fmt, clippy, cargo check for host and wasm, and the host-target test binary), so it needs the cc/ld toolchain that only the opensuse-dev image ships. On the base label the first cold-cache run fails at link time with ``error: linker `cc` not found``; a warm Swatinem/rust-cache hides it. Same fix already applied in claude-run (#CLAUDE-203), the shared reusable workflow (#PC-11), help-dashboard (#HD-11), and the sibling repo vervain-server, whose check.yml on main already requests RUNS_ON_OPENSUSE_DEV_LATEST. Every other runs-on in .forgejo/workflows/ was classified and stays on the base label with the reason recorded inline: build-desktop-linux.yml, build-desktop-windows.yml and build-oci-image.yml compile inside `docker buildx build` (the runner only needs docker, git and nu), and create-release.yml only runs git plus Forgejo API calls. src/components/runner_label_guard.rs embeds all five workflows and enforces the invariant mechanically, matching the existing *_guard test idiom: check.yml must request the dev label and must not mention the base label, and every runs-on line in every workflow must be preceded by a comment stating its reason. Verified in both directions by flipping check.yml back to base and deleting one reason comment, which fails both tests. The justfile comment on dev_image said the pre-commit image matched the opensuse-base CI runner; updated so it no longer names the wrong runner for check.yml. #VAPP-92
ci: run the check job on the dev runner label
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 1m27s
Create release / Create release from merged PR (pull_request) Has been skipped
58ef0977d2
The check job compiles Rust natively on the runner (fmt, clippy, cargo check for host and wasm, and the host-target test binary), so it needs the cc/ld toolchain that only the opensuse-dev image ships. On the base label the first cold-cache run fails at link time with ``error: linker `cc` not found``; a warm Swatinem/rust-cache hides it. Same fix already applied in claude-run (#CLAUDE-203), the shared reusable workflow (#PC-11), help-dashboard (#HD-11), and the sibling repo vervain-server, whose check.yml on main already requests RUNS_ON_OPENSUSE_DEV_LATEST.

Every other runs-on in .forgejo/workflows/ was classified and stays on the base label with the reason recorded inline: build-desktop-linux.yml, build-desktop-windows.yml and build-oci-image.yml compile inside `docker buildx build` (the runner only needs docker, git and nu), and create-release.yml only runs git plus Forgejo API calls.

src/components/runner_label_guard.rs embeds all five workflows and enforces the invariant mechanically, matching the existing *_guard test idiom: check.yml must request the dev label and must not mention the base label, and every runs-on line in every workflow must be preceded by a comment stating its reason. Verified in both directions by flipping check.yml back to base and deleting one reason comment, which fails both tests.

The justfile comment on dev_image said the pre-commit image matched the opensuse-base CI runner; updated so it no longer names the wrong runner for check.yml.

#VAPP-92
Claude-Run deleted branch fix/VAPP-92-check-dev-runner-label 2026-08-02 01:38:50 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/vervain-apps!99
No description provided.