Skip to content

Release automation - #6352

Open
swissspidy wants to merge 5 commits into
mainfrom
try/release-workflow
Open

Release automation#6352
swissspidy wants to merge 5 commits into
mainfrom
try/release-workflow

Conversation

@swissspidy

@swissspidy swissspidy commented Jul 21, 2026

Copy link
Copy Markdown
Member

Needs rigorous testing. Requires some new secrets too.

Summary by CodeRabbit

  • New Features

    • Added automated release workflows triggered by version tags or manual runs.
    • Releases now automatically build, sign, checksum, and attach artifacts, with generated release notes and contributor information.
    • Post-release automation updates versions, closes completed milestones, and triggers website updates.
  • Documentation

    • Simplified release checklist instructions to focus on bundle pull requests and tag creation.
    • Updated post-release tasks for Homebrew, blog publication, and release announcements.

@swissspidy swissspidy added the scope:distribution Related to distribution label Jul 21, 2026
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8f53055d-4a75-435f-a6e6-a193ec306d8a

📥 Commits

Reviewing files that changed from the base of the PR and between 4559876 and c9a463f.

📒 Files selected for processing (1)
  • .github/workflows/release.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release.yml

📝 Walkthrough

Walkthrough

The release process now automates Phar promotion, signing, draft release creation, version updates, dependency resets, milestone closure, and website update dispatches. The release checklist documents the automated flow and remaining manual tasks.

Changes

Release automation

Layer / File(s) Summary
Tagged release build and draft publishing
.github/workflows/release.yml, .github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md
Version tags or manual inputs generate release notes, promote Phar artifacts, create checksums and GPG signatures, update wp-cli/builds, and create draft releases for wp-cli and wp-cli-bundle.
Published-release maintenance and dispatch
.github/workflows/post-release.yml, .github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md
Published releases validate and update development versions, reset the bundle dependency, close milestones, and dispatch a website update event. The checklist now lists the remaining manual tasks.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant wpcli as wp-cli/wp-cli
  participant ReleaseWorkflow
  participant WPDev as wp-cli/wp-cli-dev
  participant Builds as wp-cli/builds
  participant Releases as GitHub Releases
  wpcli->>ReleaseWorkflow: Push version tag
  ReleaseWorkflow->>WPDev: Generate release notes
  ReleaseWorkflow->>Builds: Promote, checksum, and sign Phar
  ReleaseWorkflow->>Releases: Create draft releases with assets
Loading
sequenceDiagram
  participant Release as Published release
  participant PostReleaseWorkflow
  participant wpcli as wp-cli/wp-cli
  participant Bundle as wp-cli/wp-cli-bundle
  participant WPDev as wp-cli/wp-cli-dev
  participant Website as wp-cli.github.com
  Release->>PostReleaseWorkflow: Trigger workflow
  PostReleaseWorkflow->>wpcli: Validate version and update VERSION
  PostReleaseWorkflow->>Bundle: Reset dependency to dev-main
  PostReleaseWorkflow->>WPDev: Close released milestones
  PostReleaseWorkflow->>Website: Dispatch release-published
Loading

Possibly related issues

  • wp-cli/wp-cli#6322 — The PR automates the release checklist steps described by this issue.

Suggested reviewers: schlessera

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the pull request's main change: automating the release process.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch try/release-workflow

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md:
- Around line 94-102: Update
.github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md lines 94-102 to instruct
pushing the matching v2.x.0 tag to wp-cli/wp-cli-bundle before creating its
draft release. Update both gh release create commands in
.github/workflows/release.yml lines 125-130 and 139-144 to include --verify-tag,
ensuring releases fail instead of synthesizing or accepting an incorrect tag.

In @.github/workflows/post-release.yml:
- Around line 75-85: Update the “Reset framework constraint and branch-alias”
workflow step so Composer refreshes composer.lock after changing composer.json,
then stage and commit both files before pushing. Preserve the existing dev-main
requirement and branch-alias update while ensuring the lockfile matches them.
- Around line 25-37: Add a validation step in the workflow before any changes
are pushed to main that reads wp-cli/VERSION and compares it with VERSION
derived from TAG; if they differ, fail the job and skip subsequent milestone or
branch updates. Keep the existing next-version calculations and outputs
unchanged for matching versions.

In @.github/workflows/release.yml:
- Around line 107-116: Update the stable-build commit/push step to detect
whether staged changes exist and skip commit and push when there is no diff. In
the draft release steps, replace create-only commands with `gh release edit` for
existing drafts and `gh release upload --clobber` for assets, preserving
rerun-safe behavior when the tag already exists.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4d091471-292f-4a64-a612-e44c9482c214

📥 Commits

Reviewing files that changed from the base of the PR and between a39887a and 2923241.

📒 Files selected for processing (3)
  • .github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md
  • .github/workflows/post-release.yml
  • .github/workflows/release.yml

Comment thread .github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md
Comment thread .github/workflows/post-release.yml Outdated
Comment thread .github/workflows/post-release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/post-release.yml:
- Around line 48-58: Update the version validation step around
CURRENT_BASE_VERSION to also accept the calculated NEXT_ALPHA value as a valid
already-bumped state, allowing retries after the later push while continuing to
reject versions unrelated to RELEASED_VERSION. Preserve the existing mismatch
error and failure behavior for all other values.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ca03b773-50a0-4233-9372-7a8f0e3b375f

📥 Commits

Reviewing files that changed from the base of the PR and between 2923241 and 9bacb6d.

📒 Files selected for processing (3)
  • .github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md
  • .github/workflows/post-release.yml
  • .github/workflows/release.yml
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md
  • .github/workflows/release.yml

Comment thread .github/workflows/post-release.yml
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@swissspidy
swissspidy requested a review from schlessera July 22, 2026 11:57
@swissspidy
swissspidy marked this pull request as ready for review August 4, 2026 21:47
@swissspidy
swissspidy requested a review from a team as a code owner August 4, 2026 21:47
Copilot AI lite review requested due to automatic review settings August 4, 2026 21:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces GitHub Actions-based automation for WP-CLI’s release and post-release processes, and updates the regular release checklist to align with the new workflow-driven steps.

Changes:

  • Added a Release workflow to generate release notes, promote/sign stable PHAR artifacts, and create/update draft releases for wp-cli/wp-cli and wp-cli/wp-cli-bundle.
  • Added a Post-Release Automation workflow to bump versions/branch-aliases, reset bundle dependencies, close milestones, and dispatch a website notification after a release is published.
  • Simplified the regular release checklist to reflect the new automated steps and remaining manual tasks.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/release.yml New workflow to promote/sign artifacts and create/update draft GitHub releases.
.github/workflows/post-release.yml New workflow to automate post-release version bumps, dependency reset, milestone closure, and website dispatch.
.github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md Updated checklist to match the new automated release flow and remaining manual steps.

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

Comment thread .github/workflows/release.yml Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants