Repository navigation
ci: publish a signed Fedora dnf repository to GitHub Pages - #15
Merged
dennisklein merged 4 commits intoOct 11, 2026
Merged
dennisklein merged 4 commits into
dennisklein merged 4 commits into
Conversation
dennisklein
force-pushed
the
claude/rpm-repo-pages-cg080k
branch
from
October 11, 2026 19:56
80abbcc to
7750062
Compare
- plan.sh decides per run whether to build and whether to publish for real or as a dry run with a throwaway key - make-srpm.sh packages a release tag, or HEAD for a dry run, as source RPMs of nm-sshuttle and nm-sshuttle-gnome - publish.sh signs and files the packages, restores the published ones, prunes old versions and signs the createrepo_c metadata - smoke-test.sh installs both packages from the assembled site - nm-sshuttle-release carries the .repo file and the public key - scripts/signing-key.sh creates and rotates the signing key and stores it in an environment restricted to main Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- packages builds SRPMs, then RPMs per Fedora release, signs and assembles the repository, smoke-tests it and deploys it - pull requests and runs without a tag or signing key assemble the repository with a throwaway key and deploy nothing - release starts packages on main for each pushed release tag, because only main may use the signing key Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- user guide: repository install steps ahead of the CI artifacts - README: point to the repository and to packaging/ Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
dennisklein
force-pushed
the
claude/rpm-repo-pages-cg080k
branch
from
October 11, 2026 20:03
7750062 to
495739a
Compare
dennisklein
changed the base branch from
main
to
claude/project-thread-kmxtqs-multi
October 11, 2026 20:03
dennisklein
added this pull request to stack #16
October 11, 2026 20:04
dennisklein
marked this pull request as ready for review
October 11, 2026 20:20
Owner
Author
|
The one red check here is the After the merge, the push to Generated by Claude Code |
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.
Requested by Dennis · project thread
Before: the RPMs for Fedora 43 and 44 were only CI artifacts, so users had to download and install them by hand and got no updates.
After: a workflow builds each release tag, signs the packages and the repository metadata, smoke-tests the result in Fedora containers and deploys it to
https://dennisklein.github.io/nm-sshuttle/. Thenm-sshuttle-releasepackage installs the.repofile and the public key. There is no deb repository.Stacked on #12 (several tunnels), so its base is that branch. Merge #12 first.
This ports the repository from brig (
packaging/,scripts/signing-key.sh, thepackagesandreleaseworkflows), minus everything specific to OpenShell, SELinux and the daily upstream check.How:
packages.yamlbuilds SRPMs once, rebuilds them per Fedora release (frompackaging/fedora-releases, now 43 and 44), then signs, assembles, smoke-tests and deploys. The existing specs inpackaging/rpm/are reused unchanged.vX.Y.Zis packaged under its own version, whatever the specs say.release.yamlstartspackagesonmainfor each such tag, since onlymainmay use the signing key. Tags with a hyphen are skipped.Not exercised yet: the real publish and deploy path (signing with the real key, restoring published packages, Pages), which needs the steps below.
Before the first real publish (only the owner can do these):
scripts/signing-key.shwith theghCLI signed in as a repository admin. It creates therpm-signingenvironment restricted tomain, storesRPM_SIGNING_KEYin it and writespackaging/nm-sshuttle-release/RPM-GPG-KEY-nm-sshuttle. Commit that file tomain.git tag -a v0.1.0 -m 'nm-sshuttle 0.1.0'. There are no tags yet.See
packaging/README.mdfor the details.🤖 Generated with Claude Code
https://claude.ai/code/session_012sahcREDt4XASbqgwTDvYx