Skip to content

Add GitHub Actions CI for lint and build#1

Merged
jserv merged 1 commit intomainfrom
cicd
May 7, 2026
Merged

Add GitHub Actions CI for lint and build#1
jserv merged 1 commit intomainfrom
cicd

Conversation

@jserv
Copy link
Copy Markdown
Contributor

@jserv jserv commented May 7, 2026

Parallel jobs run on ubuntu-24.04: lint, userspace build/test, and out-of-tree kernel module compile.

Lint runs scripts under .ci/ : clang-format-20 conformance, trailing newline check (broadened beyond C/H to cover shell, Python, Markdown, and Makefiles), banned-function and secret scanning, and cppcheck on userspace sources only. Kernel code is excluded from cppcheck because Linux kernel macros produce extensive false positives without per-file suppressions; kernel-side correctness is enforced by the kernel build itself.

The kmod build installs linux-headers-generic and selects the newest version under /usr/src rather than pinning to linux-headers of running kernel. GitHub-hosted runners often use Azure-flavored kernels whose exact headers package is not in default apt repo. This is compile validation only and never insmods, so any recent generic header set is acceptable.

Integration coverage (sudo make check, requiring insmod of vpipe + vivid

  • dma-heap) is intentionally left out of CI.

Concurrency cancels superseded PR runs but lets push runs on main complete so every commit keeps a green or red signal. All jobs declare timeout-minutes and the workflow holds least-privilege contents:read permission.

Change-Id: Iacf9d00170440fa75e599d9eeb0a63f1a3a1544e

Parallel jobs run on ubuntu-24.04: lint, userspace build/test, and
out-of-tree kernel module compile.

Lint runs scripts under .ci/ : clang-format-20 conformance, trailing
newline check (broadened beyond C/H to cover shell, Python, Markdown,
and Makefiles), banned-function and secret scanning, and cppcheck on
userspace sources only. Kernel code is excluded from cppcheck because
Linux kernel macros produce extensive false positives without per-file
suppressions; kernel-side correctness is enforced by the kernel build
itself.

The kmod build installs linux-headers-generic and selects the newest
version under /usr/src rather than pinning to linux-headers of running
kernel. GitHub-hosted runners often use Azure-flavored kernels whose exact
headers package is not in default apt repo. This is compile validation
only and never insmods, so any recent generic header set is acceptable.

Integration coverage (sudo make check, requiring insmod of vpipe + vivid
+ dma-heap) is intentionally left out of CI.

Concurrency cancels superseded PR runs but lets push runs on main complete
so every commit keeps a green or red signal. All jobs declare
timeout-minutes and the workflow holds least-privilege contents:read
permission.

Change-Id: Iacf9d00170440fa75e599d9eeb0a63f1a3a1544e
@jserv jserv merged commit d5b0987 into main May 7, 2026
3 checks passed
@jserv jserv deleted the cicd branch May 7, 2026 09:16
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