Skip to content

feat(release): migrate from release-please to release-plz#171

Merged
zeitlinger merged 10 commits intomainfrom
migrate-to-release-plz
Apr 16, 2026
Merged

feat(release): migrate from release-please to release-plz#171
zeitlinger merged 10 commits intomainfrom
migrate-to-release-plz

Conversation

@zeitlinger
Copy link
Copy Markdown
Member

Summary

  • Replace release-please with release-plz for automated release PR and tag/release creation
  • Configure git_release_draft = true so GitHub releases are created as drafts, enabling binary upload before publishing (resolves Re-enable immutable releases once binary upload workflow is proven #168)
  • Replace taiki-e/upload-rust-binary-action with explicit build steps: mise for Rust setup, cross for aarch64, manual archive + sha256
  • Upload assets via GitHub list API (not tag API) since drafts return 404 from GET /releases/tags/{tag}
  • Add publish job that marks the release non-draft after all builds succeed — satisfies the repo's immutable releases rule

Test plan

- Replace release-please with release-plz for automated release PR and
  tag/release creation
- Configure git_release_draft=true so releases are created as drafts,
  enabling binary upload before publishing
- Replace taiki-e/upload-rust-binary-action with explicit build steps
  (mise for Rust setup, cross for aarch64, manual archive + sha256)
- Upload assets to the draft release via the GitHub list API instead of
  the tag API (which returns 404 for drafts)
- Add publish job that marks the release as non-draft after all builds
  succeed, satisfying the repo's immutable releases rule
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Comment thread .github/workflows/release.yml Fixed
@github-actions

This comment has been minimized.

- Add mise_version alongside mise_sha256 in each matrix entry so
  Renovate can update both together (matches test.yml convention)
- Add PR footer asking to close and reopen to trigger CI checks
  (replaces the release-please pull-request-footer)
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
…limit

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Comment thread .github/workflows/release.yml Fixed
@github-actions

This comment has been minimized.

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger marked this pull request as ready for review April 13, 2026 16:39
@zeitlinger zeitlinger requested a review from a team as a code owner April 13, 2026 16:39
Copilot AI review requested due to automatic review settings April 13, 2026 16:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the repository’s automated release process from release-please to release-plz, restructuring the GitHub Actions release workflow to support draft releases so binaries can be uploaded before publishing (aligning with the “immutable releases” constraint and #168).

Changes:

  • Add release-plz.toml configuration (including git_release_draft = true) and a new release-plz GitHub Actions workflow.
  • Replace the release workflow’s binary upload action with explicit build/archive/checksum steps and a draft-release asset upload via the Releases list API.
  • Remove release-please workflow and its configuration/manifest files.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
release-plz.toml Adds release-plz workspace configuration and PR body template.
.github/workflows/release.yml Reworks release build/upload/publish flow for draft releases + manual asset upload.
.github/workflows/release-plz.yml Introduces release-plz automation on pushes to main (release PR + release).
.github/workflows/release-please.yml Removes release-please automation workflow.
.github/config/release-please-config.json Removes release-please configuration.
.github/config/.release-please-manifest.json Removes release-please manifest/version tracking.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@github-actions

This comment has been minimized.

- Add zizmor ignore annotation for cache-poisoning (tag-triggered workflow,
  sha256 verified, not susceptible to fork PR cache poisoning)
- Use shasum -a 256 on macOS (sha256sum not available without coreutils)
- Use --paginate when listing releases to handle repos with many releases;
  fail fast if tag not found
- Delete pre-existing release assets before upload to support re-runs
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Comment thread .github/workflows/release-plz.yml
Comment thread .github/workflows/release-plz.yml
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread release-plz.toml Outdated
- Rename "Archive (Unix)" → "Archive (non-Windows)" to match condition
- Replace ${{ github.repository }} with ${GITHUB_REPOSITORY} in run: steps to avoid expression injection
- Simplify release-plz.toml pr_body: drop Jinja2 template, use {{ changelog }} + CI trigger note
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger merged commit a8b2bb7 into main Apr 16, 2026
13 checks passed
@zeitlinger zeitlinger deleted the migrate-to-release-plz branch April 16, 2026 14:09
@github-actions github-actions Bot mentioned this pull request Apr 16, 2026
zeitlinger added a commit that referenced this pull request Apr 16, 2026
### Added

- *(release)* migrate from release-please to release-plz
([#171](#171))

### Fixed

- *(release)* use correct template variable in pr_body
([#178](#178))
- *(release)* suppress component prefix in release-please tags
([#166](#166))
- *(release)* add workflow_dispatch to retrigger for existing tags
([#167](#167))

### Other

- move icon to assets/ to fix release-plz
([#177](#177))
- *(deps)* update dependency npm:renovate to v43.102.11 [security]
([#174](#174))
- *(deps)* update rust crate similar to v3.1.0
([#173](#173))
- *(deps)* update dependency github:mvdan/sh to v3.13.1
([#163](#163))

> [!IMPORTANT]
> Close and reopen this PR to trigger CI checks.

---------

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
This was referenced Apr 16, 2026
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.

Re-enable immutable releases once binary upload workflow is proven

4 participants