Skip to content

Add GitHub Actions CI for build, lint, and testing#27

Merged
jserv merged 2 commits intomainfrom
cicd
Apr 18, 2026
Merged

Add GitHub Actions CI for build, lint, and testing#27
jserv merged 2 commits intomainfrom
cicd

Conversation

@jserv
Copy link
Copy Markdown
Contributor

@jserv jserv commented Apr 18, 2026

This introduce a CI pipeline:

  • commit-hygiene: vanity SHA-1 prefix, subject format, AI trailer rejection via scripts/check-commitlog.sh
  • lint: clang-format, trailing newlines, banned functions, cppcheck, shfmt via .ci/ scripts
  • unit-tests: test-game and test-coro
  • build: kernel module and xo-user compile check
  • integration-tests: insmod, device I/O, game completion, kernel health, clean unload with dmesg diagnosis

@jserv jserv force-pushed the cicd branch 5 times, most recently from 00006e4 to 00002f9 Compare April 18, 2026 21:18
cubic-dev-ai[bot]

This comment was marked as resolved.

cubic-dev-ai[bot]

This comment was marked as resolved.

jserv added 2 commits April 19, 2026 05:53
CI pipeline:
- commit-hygiene: SHA-1 prefix, subject format, AI trailer rejection
- lint: clang-format, trailing newlines, banned func, cppcheck, shfmt
- unit-tests: test-game and test-coro
- build: kernel module and xo-user compile check
- integration-tests: insmod, device I/O, game completion, kernel health,
  clean unload with dmesg diagnosis
- Add explicit permissions (contents: read) to enforce least-privilege
  on GITHUB_TOKEN.

This fixes kxo_state_store: sscanf into temporaries and use WRITE_ONCE
for attr_obj.end to pair with lockless READ_ONCE in kxo_shutting_down.
Return -EINVAL from kxo_state_store when sscanf cannot parse all three
fields, instead of silently succeeding.
In fixed_log, the divisor (v + (1U << FIXED_SCALE_BITS)) is computed in
32-bit arithmetic. When v = 0xFFFF0000 (n_total=65535, so n_total<<16),
the addition overflows to zero, triggering a kernel Oops (divide error)
inside the kxod workqueue via ai_one_work_func -> play_agent_move ->
mcts.

This crashes the kworker, leaves the module refcount elevated, and makes
rmmod hang forever, which is CI timeout seen in integration-tests job.

Cast v to u64 before the addition so denominator is computed in 64-bit
and cannot wrap to zero.
@jserv jserv merged commit d91354a into main Apr 18, 2026
5 checks passed
@jserv jserv deleted the cicd branch April 18, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant