Skip to content

ci: add a consumer canary that uses the published action#95

Merged
ErenAri merged 2 commits into
mainfrom
ci/consumer-canary
Jul 21, 2026
Merged

ci: add a consumer canary that uses the published action#95
ErenAri merged 2 commits into
mainfrom
ci/consumer-canary

Conversation

@ErenAri

@ErenAri ErenAri commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Why

Every lane in this repo runs the action as uses: ./ — the working tree. That never exercises what an external consumer actually hits:

  • resolving a pinned SHA to a release and downloading + checksum-verifying the assets, or
  • building the in-guest validator from source on a runner with only the documented dependencies.

Both have broken before with every check in this repo green. The first scheduled run of the falcosecurity/libs lane failed precisely this way (SHA pin fell through to a source build on a runner without libbpf-dev). We found out from their CI, which is the wrong way round.

What

Two jobs, one per resolution path:

Job Pin Dependencies Catches
prebuilt v0.3.2 release commit (as falcosecurity/libs pins) minimal — no libbpf-dev release resolution regressing into a source build; broken/missing release assets; checksum failures
source-build @main (not a release) the documented set dependency drift — a change needing a package consumers don't install

The prebuilt job omitting the toolchain is the point: if resolution breaks, the source build has nothing to compile with and fails loudly here.

source-build uses command mode with a shipped binary, mirroring how falcosecurity/libs drives its own loader (verdict = the command's exit code), so the ship-binary-into-guest path is covered too.

Runs Sundays 18:00 UTC, ~12h ahead of the downstream Monday 06:00 UTC lane.

Scope note

Schedule + workflow_dispatch only, deliberately. Both jobs resolve the action from a published ref, so a pull_request trigger would test those refs rather than the change under review — a green that proves nothing. Working-tree changes to the action are already covered by bpfcompat-example-hosted (uses: ./). Dispatch this lane by hand before cutting a release.

Matrix is deliberately two kernels: this lane exists to catch plumbing breakage, not to prove kernel coverage (the quirk library does that).

Every other lane here runs the action from the working tree (uses: ./),
which never exercises what a downstream consumer actually hits: resolving
a pinned ref to a release, downloading and checksum-verifying the release
assets, or building the in-guest validator from source with only the
documented dependencies. Both paths have broken before without a single
red check in this repo -- the first scheduled run of the
falcosecurity/libs lane failed exactly that way.

Two jobs, one per resolution path:

  prebuilt      pins the v0.3.2 release commit, as falcosecurity/libs
                does, and deliberately does not install libbpf-dev. If
                release resolution regresses and falls back to a source
                build, the compile fails here.
  source-build  pins @main (not a release) to force the source path with
                exactly the dependency set we document, so drift shows up
                here before it shows up downstream.

Runs Sundays 18:00 UTC, ahead of the downstream Monday 06:00 UTC lane.
Schedule and dispatch only: both jobs resolve the action from a published
ref, so a pull_request trigger would test those refs rather than the
change under review.

Signed-off-by: ErenAri <erenari27@gmail.com>
Copilot AI review requested due to automatic review settings July 21, 2026 15:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

The compatibility matrix page is the natural place for a reader to ask
'who actually depends on this?'. States the fact and links the workflow;
no endorsement claim and no Falco branding.

Signed-off-by: ErenAri <erenari27@gmail.com>
@ErenAri
ErenAri merged commit e2daa83 into main Jul 21, 2026
8 of 9 checks passed
@ErenAri
ErenAri deleted the ci/consumer-canary branch July 21, 2026 16:01
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.

2 participants