Skip to content

ci: create a release in each output repo after syncing - #46

Draft
steve-calvert-glean wants to merge 1 commit into
mainfrom
fix/output-repo-releases
Draft

steve-calvert-glean wants to merge 1 commit into
mainfrom
fix/output-repo-releases

Conversation

@steve-calvert-glean

Copy link
Copy Markdown
Contributor

Problem

Releasing from this repo updates claude-plugins, cursor-plugins and codex-plugins, but it never creates a GitHub Release in them. Their Releases pages show only the releases someone made by hand. After v3.6.1 shipped, claude-plugins and cursor-plugins still listed v3.5.0 as the latest release, and codex-plugins had none.

Users weren't affected. All three marketplaces install from the plugin repo's default branch, which had 3.6.1.

Change

publish.yml gets a "Release " step after "Merge sync PR". In sync mode on a v* tag, it:

  1. Picks the commit to tag: the sync PR's merge commit, or the output repo's default branch when the output didn't change.
  2. Copies the source release's notes and adds a "Built from gleanwork/agent-plugins vX.Y.Z" link.
  3. Creates Release X.Y.Z on that commit in the output repo.

If the output repo already has a release for the tag, the step does nothing, so re-running a release's sync is safe. It marks the release latest only when the tag is this repo's latest release, so re-running an older tag doesn't take the latest label from a newer release.

If the merge step fails, the job stops before this step. RELEASE.md now says to merge the PR by hand and then re-run the release's sync, which creates the release.

Testing

  • actionlint (with shellcheck) reports nothing for the new step. It still reports two errors for the existing create-github-app-token step, which come from actionlint's outdated metadata for that action; the step works in CI.
  • Ran the step's script against the real output repos with gh release create replaced by echo:
  • The v3.6.1 releases in the three output repos were created by hand with the same commands and notes, because a re-run on v3.6.1 uses that tag's copy of the workflow, which has no release step.

The first release after this merges is the first end-to-end run.

The publish workflow updated claude-plugins, cursor-plugins and
codex-plugins but never created a GitHub Release in them, so their
Releases pages stopped at the last release someone made by hand
(v3.5.0).

After the sync PR merges, tag the merged commit in the output repo and
create a release with the same version and notes as the source release.
Skip a tag that already has a release, so re-running a sync is safe, and
mark it latest only when it is the source repo's latest release.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant