Skip to content

ci: publish production kernel debs as rolling GitHub release#320

Open
anodos325 wants to merge 1 commit into
truenas/linux-6.18from
surface-kernel-artifacts
Open

ci: publish production kernel debs as rolling GitHub release#320
anodos325 wants to merge 1 commit into
truenas/linux-6.18from
surface-kernel-artifacts

Conversation

@anodos325

Copy link
Copy Markdown
Contributor

On push to truenas/linux-6.18 or stable/26, republish the production debs as assets of a per-train rolling prerelease (master-nightly, 26-nightly) with SHA256SUMS and a manifest.json naming the kernel release and files. Unlike Actions artifacts, release assets never expire and are downloadable anonymously at stable URLs, so downstream builds can consume the latest kernel without credentials.

Tags follow the TrueNAS train rather than the kernel series so that consumer download URLs survive a kernel-series rebase of master; a branch-to-train case mapping fails the job on any unmapped branch.

Align the production build with truenas_build (conf/build.manifest): set EXTRAVERSION/PYTHON via the environment, replace distclean with rm -rf .config.old, use plain make defconfig, add zstd.

Force the production build on publishing-branch pushes so a skip-duplicate result cannot leave the publish job without artifacts. The publish job refuses to run if the branch tip has moved on, and a concurrency group serializes back-to-back merges.

Package names carry no kernel version, so the release string is read from the vmlinuz path inside the image deb.

On push to truenas/linux-6.18 or stable/26, republish the production
debs as assets of a per-train rolling prerelease (master-nightly,
26-nightly) with SHA256SUMS and a manifest.json naming the kernel
release and files. Unlike Actions artifacts, release assets never
expire and are downloadable anonymously at stable URLs, so downstream
builds can consume the latest kernel without credentials.

Tags follow the TrueNAS train rather than the kernel series so that
consumer download URLs survive a kernel-series rebase of master; a
branch-to-train case mapping fails the job on any unmapped branch.

Align the production build with truenas_build (conf/build.manifest):
set EXTRAVERSION/PYTHON via the environment, replace distclean with
rm -rf .config.old, use plain make defconfig, add zstd.

Force the production build on publishing-branch pushes so a
skip-duplicate result cannot leave the publish job without artifacts.
The publish job refuses to run if the branch tip has moved on, and a
concurrency group serializes back-to-back merges.

Package names carry no kernel version, so the release string is read
from the vmlinuz path inside the image deb.
@anodos325
anodos325 requested a review from ixhamza July 18, 2026 01:43
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