kernel-guard/BPFCompat eBPF Compatibility Gate

Validate eBPF .bpf.o artifacts across Linux kernel profiles and fail CI on compatibility regressions.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 2, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: kernel-guard/bpfcompat@c7ef4fbb39f0054876ab2d286b3a6aaf86d05499 # v0.3.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
suiteOptional suite YAML. When set, the action runs bpfcompat suite instead of single-artifact mode.no""
artifactPath to compiled .bpf.o artifact.no""
commandCommand-mode validation: shell command run as root inside each kernel VM; the per-kernel verdict is its exit code. Use instead of (or alongside) artifact to validate via your project's own loader binary. Exposes $BPFCOMPAT_BIN, $BPFCOMPAT_ARTIFACT, and $BPFCOMPAT_REMOTE_ROOT.no""
command-binaryLocal loader executable shipped into each guest and exposed to command as $BPFCOMPAT_BIN.no""
command-expect-exitExit code that counts as a pass in command mode.no0
matrixPath to matrix YAML. A bare name (for example quirk-library) that does not exist in the caller repository resolves to the matching matrices/<name>.yaml shipped with the action.no""
outPath to JSON report output.no""
suite-outPath to suite JSON summary output when suite mode is used.noreports/bpfcompat-suite.json
suite-markdownPath to suite Markdown summary output when suite mode is used.noreports/bpfcompat-suite.md
manifestPath to manifest YAML.no""
validation-modeOptional single-artifact validation mode: load_only, load_attach, or behavior. Suite mode should set validation_mode inside the suite YAML.no""
markdownPath to Markdown report output.no""
timeoutPer-target timeout (for example 180s, 8m).no180s
workdirWorking directory root.no.bpfcompat
concurrencyMaximum concurrent VM jobs.no2
keep-vm-on-failureKeep VM overlays/logs on target failure.nofalse
buildBuild ./bin/bpfcompat with make before running tests.notrue
prebuiltUse prebuilt release binaries when the action is pinned to a release tag or to a commit SHA that matches a release tag ("auto"), or always build from source ("never"). Downloads are checksum-verified against the release SHA256SUMS.noauto
binaryPath to bpfcompat binary. Relative paths are resolved from the caller repository root.no./bin/bpfcompat

no outputs