Skip to main content

Release Workflows

The WooCommerce release process is supported by a set of GitHub Actions workflows that automate repetitive tasks, enforce process guardrails, and send notifications. This page provides a reference of all release-related workflows, organized by how they are triggered.

All workflows are defined in the .github/workflows/ directory.

Scheduled workflows

These workflows run automatically on a daily schedule.

WorkflowScheduleWhat it doesWhen it acts
Release: AssignmentDaily at 18:00 UTCChecks the release calendar, assigns the release lead, and creates the parent tracking issue with sub-issues for each release in the cycle. Calls Create Tracking Issue for each sub-issue.~8 weeks before feature freeze.
Release: Enforce Feature FreezeDaily at 18:00 UTCChecks the release calendar and creates the release branch from trunk, bumps trunk to the next dev version, publishes a dev release, cleans up old milestones, and sends Slack notifications. Calls Bump version number and Build ZIP file.On the feature freeze date.
Release: Feature highlight notificationDaily at 09:00 UTCChecks the release calendar and sends a Slack reminder to teams about the upcoming feature freeze deadline.~1 week before feature freeze.
Release: Open Issue WarningDaily at 18:00 UTCChecks the release calendar and looks for open items in release milestones, sending a Slack notification listing them with assignees.Within 72 hours of a release date.
Nightly buildsDaily at 00:00 UTCBuilds a nightly ZIP from trunk and uploads it to a GitHub release. Runs every day, independent of the release calendar.Every day.

Event-driven workflows

These workflows are triggered automatically by GitHub events such as pull requests being merged, releases being published, or issues being labeled.

Cherry-pick and backport

WorkflowTriggerWhat it does
Cherry-pick Milestoned PRs to Release BranchesPR closed or milestoned on trunkCherry-picks from trunk to the release/x.y branch matching the PR milestone. Uses shared-cherry-pick for the core logic.
Cherry-pick to Frozen ReleasePR merged on a release/x.y branch with the cherry pick to frozen release labelCherry-picks from a release/x.y branch to the next (frozen) release/x.y branch. Uses shared-cherry-pick for the core logic.
Cherry Pick to TrunkPR merged on a release/x.y branch with the cherry pick to trunk labelCherry-picks from a release/x.y branch back to trunk. Uses shared-cherry-pick for the core logic.
Block merge if cherry-pick conflicts existPR events on cherry-pick-* branchesFails CI when the cherry pick has conflicts label is present, preventing the PR from being merged until conflicts are resolved and the label is removed.

Milestoning

WorkflowTriggerWhat it does
Auto-Add Milestone to Release PRsPR opened or reopened on a release/x.y branchAssigns the matching milestone to PRs targeting a release branch.
Auto-assign milestone on mergePR closed on trunkAssigns a milestone to PRs merged to trunk that don't already have one.

Release events and validation

WorkflowTriggerWhat it does
Release: Release events proxyRelease published or prereleasedDelegates to release-new-release-published to run post-release actions: sends Slack notifications, updates the global changelog for stable releases, and calls Generate Number of Commits and Contributors for beta releases.
Release checks runRelease published or editedRuns the CI test suite against published releases. Also runs nightly on a schedule.
Release: CFE and PRR issue validationIssue labeled with code freeze exception, point release request, Approved, or RejectedValidates Code Freeze Exception and Point Release Request issues, applies labels and milestones to the associated PR, and sends Slack notifications. Being deprecated.

Manual workflows

These workflows are triggered by the release lead during the release process. They are the workflows referenced in the building and publishing guide and in the release tracking issues.

Building and publishing

WorkflowWhat it does
Release: Bump version numberUpdates version numbers across plugin files and creates a PR against the release branch.
Release: Compile changelogCompiles changelog entries and creates PRs against both trunk and the release branch.
Release: Build ZIP fileBuilds the release ZIP and optionally creates a draft GitHub release.
Release: Upload release to WordPress.orgUploads the release ZIP to WordPress.org SVN.
Release: Update stable tagUpdates the stable tag on WordPress.org and creates PRs to sync it in the repository.

Tracking and analysis

WorkflowWhat it does
Release: Create Tracking IssueCreates a Linear tracking issue for a specific release version using the templates in .linear/.
Release: Generate Number of Commits and ContributorsGenerates release statistics (commit count, contributors list) and sends a Slack notification.
Release: analyze trends (CFEs and PRRs)Creates GitHub issues requesting AI analysis of Code Freeze Exceptions and Point Release Requests for a milestone.