Repository navigation
chore: release-please and shared release workflows - #19
Merged
Merged
Conversation
Add release-please (go, seeded at 0.0.0) and the shared release, preview and cut-prerelease callers pinned to workflows v1.5.2. The release jobs are skipped while the repo is a template, so they only run in repos created from it. Remove the old tag-push release and build-and-upload workflows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
gusfcarvalho
approved these changes
Oct 13, 2026
gusfcarvalho
left a comment
There was a problem hiding this comment.
Checked: release-please seed, shared release callers pinned to workflows v1.5.2, ci / required green. Batch 1 repo settings are applied.
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.
Why
The template never releases itself (
release: falsein the manifest), but every new plugin repo copies its workflow files. So it now carries the same release callers as a real plugin (as in plugin-github-repositories#26), with the release jobs skipped while the repo is a template.Default branch:
main. Everypush: branches:trigger here uses[main].What changes
release-please-config.json: the shared defaults from workflowsrelease-please/defaults.jsonat v1.5.2 (no drift), withpackages: {".": {"release-type": "go"}}. Same as mock-plugin-1..release-please-manifest.json:{".": "0.0.0"}and nobootstrap-sha. The template has no releases, and a SHA from its history would not exist in a repo created from it.6e7fc9c):release-please.yml(push tomain);release.yml(release: published,protocol-version: "2");preview.yml(kind: go-plugin,on-main: false, so only thepreviewlabel publishes:pr-<n>);cut-prerelease.yml(workflow_dispatch, rc tagsvX.Y.Z-rcN).release-please.yml,release.ymlandcut-prerelease.ymlhaveif: ${{ !github.event.repository.is_template }}, with a one-line comment above it saying why. They are skipped here and run in a repo created from the template (a new repo is not a template).preview.ymlandci.ymlhave no guard.ci.yml: pins moved from v1.5.1 to v1.5.2. It already callsrelease-checks.yml. Nothing else changed..goreleaser.yaml: addsrelease: {prerelease: auto, replace_existing_artifacts: true}. The shared job refuses to run withoutprerelease: autoand warns withoutreplace_existing_artifacts. Builds (binary: plugin, linux and darwin) and archives are unchanged.README.md: a short "Releasing" section for repos created from the template. It covers release-please PRs and thecut-prereleaseworkflow, and says to set.release-please-manifest.jsonto the current version if the repo already has releases.Deleted
.github/workflows/build-and-upload.yml: a reusable job that ran goreleaser and uploadeddist/with gooci to:<tag>and:latest..github/workflows/release.yml(old content, replaced by the new caller of the same name): on any tag push, it calledbuild-and-upload.yml.Published artifacts: old vs new (for repos created from the template)
The template itself has never published a release, so there is nothing of its own to compare. For a repo created from it:
release: published)*)cut-prerelease(tagsvX.Y.Z/vX.Y.Z-rcN):<tag>and:latest:vX.Y.Z, plus:latestonly for a final taglatestwas gated ongithub.event.release.prerelease, which is empty on a tag push, so an rc also movedlatest:vX.Y.Z-rcN;latestis untouchedlatestdigestcrane tagpointslatestat thevX.Y.Zmanifest: one digestgooci upload dist/ … --annotate="org.ccf.plugin.protocol.version=2"~> v2, gooci@latestThese match the known batch-1 differences. The
latestindex'sorg.opencontainers.image.ref.name/versionannotations will readvX.Y.Z, becauselatestis now the same manifest.Verified locally
go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12: clean.go build ./...andgo test ./...: pass.goreleaser checkandgoreleaser release --snapshot --clean(v2.16.0):dist/hasplugin-template_{Darwin_arm64,Darwin_x86_64,Linux_arm64,Linux_i386,Linux_x86_64}.tar.gz(each withLICENSE,README.md,plugin) and a checksums file. Thego mod tidyhook left the tree clean.release-please-config.jsoncompared with workflowsrelease-please/defaults.jsonat v1.5.2: no differing keys.Open questions for reviewers
github.event.repository.is_templatebeing in the push, release and workflow_dispatch payloads (it is part of the repository object). If it were missing,!nullis true and the job would run here and fail on the missingreleaseenvironment secrets. It can only be checked after merge: the firstrelease-pleaserun onmainhere should show its job as skipped.This PR stays open until the batch's repo settings are applied, per the batch order.
Task: W3-S2-T01 (local-dev/docs/release-automation/workstream-3-plugins-in-train.md)
🤖 Generated with Claude Code