Repository navigation
Add automated nightly build (rolling GitHub prerelease) - #1087
Merged
Merged
Conversation
goreleaser's own Nightlies feature is Pro-only (verified: `goreleaser release --help` on the installed OSS 2.17.0 CLI has no --nightly flag) -- this uses the free --snapshot flag against a dedicated Linux/Windows-only .goreleaser.nightly.yml (no macOS build, no signing, no homebrew publish), then the workflow itself replaces a single rolling `nightly` prerelease/ tag on every push to main. Lets a host (e.g. aimax) pick up a just-merged fix like #1074's per-VM guest hostname without waiting for a tagged, GPG-signed, Apple-notarized release. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F75TsjPk2tV2RD1rizu6eF
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 045a1b98a8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ze runs Two real bugs from automated review, both reproduced locally before fixing: - Once the `nightly` tag exists, checkout's fetch-depth:0 pulls it down, and GoReleaser's version discovery picks it as "the current tag" -- then fails outright since `incpatch` can't operate on a non-semver tag. Confirmed live: tagging HEAD `nightly` locally broke the exact same build that succeeded moments before. Fixed by deleting the local tag ref right after checkout, before GoReleaser runs. - No concurrency group meant two overlapping pushes could each independently delete+recreate the release, with whichever finishes last winning -- if that's the older push, the rolling release goes stale. Fixed with a concurrency group that cancels an in-progress run as soon as a newer push starts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F75TsjPk2tV2RD1rizu6eF
3 of 4 tasks
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.
Summary
.github/workflows/nightly.yml+.goreleaser.nightly.yml: builds and publishes an unsigned "nightly" onctl binary (Linux amd64/arm64, Windows amd64) from the tip ofmainon every push, as a single rollingnightlyGitHub prerelease (always overwritten, always atgithub.com/cdalar/onctl/releases/tag/nightly) — so a host can pick up a just-merged fix (e.g. fc: give every microVM its own guest hostname #1074's per-VM guest hostname) without waiting for a tagged, signed release.goreleaser release --helphas no--nightlyflag, and this repo'sgoreleaser.ymlalready uses the freedistribution: goreleaser(notgoreleaser-pro, withGORELEASER_KEYcommented out). Also checked whether a separate "beta" feature might be free instead — GoReleaser's own docs describe "beta builds or a rolling-release system" as just alternate phrasing for the same Pro-only Nightlies feature, not a distinct one.--snapshotflag (unversioned artifacts, skips all publishing/validation) against a dedicated.goreleaser.nightly.yml— Linux/Windows only, no macOS build, no GPG/quill signing, no homebrew tap publish, none of which apply to a nightly — then the workflow itself deletes+recreates thenightlyrelease/tag viagh release, rather than reusinggoreleaser.yml's config with skip flags.ubuntu-latest, not the self-hosted macOS/ARM64 runnergoreleaser.ymluses (that one exists only for the macOS notarization step, which this workflow never builds).Test plan
.goreleaser.nightly.ymlby actually runninggoreleaser release --snapshot --clean -f .goreleaser.nightly.yml --skip=publishlocally — succeeded, produced reallinux_amd64/linux_arm64/windows_amd64archives + checksums in ~34smain) — will check it publishes thenightlyrelease correctly🤖 Generated with Claude Code
https://claude.ai/code/session_01F75TsjPk2tV2RD1rizu6eF