Repository navigation
feat(release): publish builds of main into the edge channel - #36
Merged
bpapaspyros merged 5 commits intoOct 27, 2026
Merged
Conversation
bpapaspyros
force-pushed
the
feat/release-channels
branch
from
October 27, 2026 10:01
4b4d292 to
d3dacad
Compare
reusable_edge_build.yml builds every routed package on a push to the default branch at <version>+git<commit time>.<commit> and hands it to the publisher for the edge channel. The tag workflow hands releases over for stable. reusable_release_build.yml takes version_suffix and fails when the .deb does not carry it; reusable_release_publish.yml takes channel and leaves queueing to the publish host. The dispatch moves to release/hand_to_publisher.py, shared by both.
bpapaspyros
force-pushed
the
feat/release-channels
branch
from
October 27, 2026 14:05
d3dacad to
e7795ad
Compare
mbloechli
approved these changes
Oct 27, 2026
mbloechli
left a comment
Contributor
There was a problem hiding this comment.
this PR looks good to me
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
The apt archive gets channels:
stablefor releases,edgefor builds of main, andnightly, which the publisher switches to whatedgepublishes once a day. Releases already reach the publisher. Builds of main need a workflow of their own, a version that sorts between releases, and a channel in the hand-over.reusable_edge_build.yml(new), called on a push to the default branch:<duatic_archive_root>, for each distro inros_distroson amd64 and arm64;<version>+git<commit time>.<commit>, the committer time in UTC, which sorts after the release a build follows and before the next one;edge, the same way the tag workflow does, and refuses to run for anything but a push to the default branch.reusable_release_tag.ymlhands releases over forstable. The dispatch moves torelease/hand_to_publisher.py, which both workflows run, and the payload now carries the channel.reusable_release_build.ymltakesversion_suffix, passed to the builder asDEB_VERSION_SUFFIX. The build fails when the.debdoes not carry it.reusable_release_publish.yml:channel,stableby default, checked like the other fields and sent with the request;Testing
release/test_edge_packages.sh, added to self-check: 2 passed. Ranedge_packages.pyon soem_vendor's main, which gives0.4.1+git20261022072933.ef147ee.hand_to_publisher.pyagainst a mock of the GitHub API, with two of four legs built. It handed over exactly those two, with the channel and the suffixed version.sftp-server. The rename replaces a file already at that name.job.workflow_ref, which it does not know and the existing workflows already use.!and means the next release is a major version bump)Notes
duatic_devtoolswithDEB_VERSION_SUFFIXat thev1the build checks out, and the channel support on the publish host, before an edge build can publish.