Skip to content

NAS-141847 / 26.0.0-RC.1 / ci: publish production kernel debs as rolling GitHub release (by anodos325)#321

Merged
anodos325 merged 2 commits into
stable/26from
NAS-141847-26.0.0-RC.1
Jul 20, 2026
Merged

NAS-141847 / 26.0.0-RC.1 / ci: publish production kernel debs as rolling GitHub release (by anodos325)#321
anodos325 merged 2 commits into
stable/26from
NAS-141847-26.0.0-RC.1

Conversation

@bugclerk

Copy link
Copy Markdown

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.

Original PR: #320

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.

(cherry picked from commit 176f823)
(cherry picked from commit debb947)
@bugclerk

Copy link
Copy Markdown
Author

@anodos325
anodos325 merged commit b182177 into stable/26 Jul 20, 2026
8 checks passed
@anodos325
anodos325 deleted the NAS-141847-26.0.0-RC.1 branch July 20, 2026 18:50
@bugclerk

Copy link
Copy Markdown
Author

This PR has been merged and conversations have been locked.
If you would like to discuss more about this issue please use our forums or raise a Jira ticket.

@truenas truenas locked as resolved and limited conversation to collaborators Jul 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants