fix(release): publish signing certificate and verify releases the way an operator does #41
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: ochenstarik/server-monitor-manager#41
Loading…
Reference in a new issue
No description provided.
Delete branch "integration/release-signing-consistency"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Integrates PR #40 and fixes three inconsistencies around it, so that release signing works on the path an operator actually takes.
What #40 got right, kept as is
Keyless cosign signing produces an ephemeral certificate, not a static key. Until now only
manifest.sigwas published, socosign verify-blobhad nothing to verify against and the signature onv0.1.0-alpha.12andv0.1.0-alpha.13cannot be checked at all. #40 publishesserver-monitor-manager-manifest.pem, threads it throughverify_manifestandverify_archive, and updates the Desktop updater and the release policy.Fixed here
ghfought the isolation it runs inside. The verification scripts fetched assets withgh release download, while the isolation step removes.giton purpose so the install comes from the release and not the source tree.ghresolves the repository from that git context, which is why the first runs failed. An operator has neitherghnor a token, so the scripts now use publiccurl,sha256sumandcosignonly.verify-assets.shkeepsgh: it runs before isolation and only lists assets.The monitor check pointed at a user that does not exist. The bootstrap creates
ochenstarik-monitorwith/var/lib/ochenstarik-monitor; the script usedochenstarik-smm-monitorunder the Control state directory, so that section could never have passed. It now asserts the forced command is pinned inauthorized_keysbefore running it, and quotes the command instead of splitting it on whitespace.The expected asset list lacked the certificate, so a correct release would have been reported as having an unexpected asset.
Added
docs/linux-bootstrap.mdnow lists manifest, signature and certificate among the files to download, becauseverify-releaserequires all three beside the archive and the previous list stopped being sufficient;Verification
bash -non every changed script.BOOTSTRAP_CONTRACT=PASS,RELEASE_CONTRACT=PASSlocally.test-manifest-verification.shneeds cosign and runs in CI.Not verified locally: the release-verification workflow itself, which only runs against a published release.
🤖 Generated with Claude Code