ci: fix dead PR trigger, install crate before functional tests, ASan/UBSan job, -Wall -Wextra (+-Werror on Linux), parallel kyua, lite off deprecated run: (1.1.28) - #231
Open
click0 wants to merge 1 commit into
Conversation
…UBSan job, -Wall -Wextra (+-Werror on Linux), parallel kyua, lite off deprecated `run:` (1.1.28)
- linux-unit.yml: `pull_request: branches: [master]` never fired (default
branch is main) — the fastest gate ran on push only. Now [main].
- freebsd-build.yml: `sudo gmake install` before kyua — the functional
test atf_skips without /usr/local/bin/crate, so even a healthy manual
full run silently skipped every functional test.
- linux-unit.yml: new `sanitizers` job — -fsanitize=address,undefined
via the Makefile's COVERAGE_* hooks; ATF cases run directly because
kyua scrubs the env (ASAN_OPTIONS/UBSAN_OPTIONS would not reach them).
- Makefile: TEST_CXXWARN ?= -Wall -Wextra -Wno-missing-field-initializers
on both test rules (they had NO warning flags); Linux CI adds -Werror.
Fixed the real warnings that surfaced: unused lambda param in util.h,
dead skipWs (privops_wire_pure) and isZero (ip6_alloc_pure), and
`//` comments ending in `\` (-Wcomment) in retune_pure.h and three
tests. Verified locally: all 69 link srcs + stub + 79 tests clean.
- Makefile KYUA_FLAGS; CI runs `kyua -v parallelism=<ncpu>` (1400+
cases were serial).
- freebsd-build-lite.yml migrated from the action's deprecated `run:`
input to `shell: cpa.sh {0}` steps; redundant smoke-compile step
dropped; stale "~1200 compiles" comment corrected. Full keeps `run:`
until lite has proven the syntax.
Bumps to 1.1.28; CHANGELOG + trust-model.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6t6tzVypHye5bDGLxzmZK
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.
Summary
Step 3 of the agreed plan — CI & build hygiene. This PR exercises itself: the new sanitizer job,
-Werror, parallel kyua, and the migrated lite workflow all run on this very PR.Bugs in CI (found by the test/CI review)
linux-unit.yml.pull_request: branches: [master]while the default branch ismain→ the fastest gate ran onpushonly; fork PRs got nothing. Now[main]. (This PR is the first one where the Linux job shows up as a PR check.)freebsd-build.yml.tests/functional/crate_info_testdoesatf_skip "crate binary not installed"unless/usr/local/bin/crateexists, and nothing ever installed it.sudo gmake installnow runs before kyua.New coverage
sanitizers). Pure modules are platform-independent, so-fsanitize=address,undefined -fno-sanitize-recover=allis cheap and catches exactly the class the 1.1.22ctx.cpperase(end())UB belonged to. Built through the Makefile's existingCOVERAGE_CXXFLAGS/COVERAGE_LDFLAGS; the ~1400 ATF cases are run directly (prog -l/prog <case>) because kyua scrubs the test environment andASAN_OPTIONS/UBSAN_OPTIONSwould never reach it.-Werroron Linux —Makefile. The two test rules had no warning flags at all. NewTEST_CXXWARN ?= -Wall -Wextra -Wno-missing-field-initializers; Linux CI adds-Werror(gcc vs FreeBSD clang differ enough that a global-Werrorwould be brittle). The four real warnings that surfaced are fixed: unused lambda param inutil.h, deadskipWs(privops_wire_pure.cpp) andisZero(ip6_alloc_pure.cpp),//comments ending in\(-Wcomment) inretune_pure.hand three tests. Verified locally: all 69 link sources + stub + 79 test files compile clean under-Werror.KYUA_FLAGSMakefile variable; all three workflows runkyua -v parallelism=<ncpu>instead of a fully serial ~1400-case run.Workflow migration
freebsd-build-lite.ymlmoved off the action's deprecatedrun:input toshell: cpa.sh {0}steps (upstream: "The run parameter is deprecated. Use the custom shell on subsequent steps"). Each phase is a real step with its own timing; the redundant "compile changed components (smoke)" step is gone; the stale "~1200 compiles / +1 min per test" comment (fixed in the Makefile since 0.7.12) is corrected. The full workflow keepsrun:until the migrated lite has proven the syntax on a few pushes — it is manual-only, so a breakage there would go unnoticed.Version
Bumps to 1.1.28;
CHANGELOG.md+docs/trust-model.{md,uk.md}updated.🤖 Generated with Claude Code
https://claude.ai/code/session_01X6t6tzVypHye5bDGLxzmZK
Generated by Claude Code