Skip to content

Add production staged-rollout growth - #23135

Open
oguzkocer wants to merge 1 commit into
trunkfrom
task/advance-production-rollout
Open

Add production staged-rollout growth#23135
oguzkocer wants to merge 1 commit into
trunkfrom
task/advance-production-rollout

Conversation

@oguzkocer

Copy link
Copy Markdown
Contributor

Description

Adds an advance_production_rollout fastlane lane that reads the current production rollout back from Play and advances WordPress and Jetpack one step, plus the Buildkite command and schedule to run it.

  • Reads the in-flight production release via the Play API and advances an inProgress release's user_fraction to the next value in PRODUCTION_ROLLOUT_STEPS ([1, 2, 5, 10, 20, 50]%), finalizing to completed past the top step.
  • Acts only on an inProgress release — draft, halted (paused), and completed are left untouched, so a scheduled run never resumes a paused rollout. The write re-reads the track inside its own edit and bails if the release is no longer inProgress.
  • Requires WordPress and Jetpack to share the same rollout state; a mismatch errors rather than guessing.
  • Runs on a daily Buildkite schedule (.buildkite/schedules/advance-production-rollout.yml + .buildkite/commands/advance-production-rollout.sh). Advances, finalizes, and failures post to Slack; no-op runs stay quiet.

The lane advances an already-started rollout only; it no-ops until a release is moved from draft to inProgress.

Testing instructions

No manual test steps — this will be exercised as part of an upcoming release, with any issues addressed in a follow-up.

Add the `advance_production_rollout` fastlane lane, which reads the current
production rollout back from Play and advances WordPress and Jetpack one step:
for an `inProgress` release it raises `user_fraction` to the next value in
`PRODUCTION_ROLLOUT_STEPS` ([1, 2, 5, 10, 20, 50]%), and finalizes to
`completed` past the top step. It acts only on an `inProgress` release, leaving
`draft`, `halted`, and `completed` releases untouched, and errors when the two
apps' rollout states differ.

Add `.buildkite/commands/advance-production-rollout.sh` and
`.buildkite/schedules/advance-production-rollout.yml` to run the lane.
@oguzkocer oguzkocer added this to the 27.1 milestone Jul 23, 2026
@wpmobilebot

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in Jetpack Android by scanning the QR code below to install the corresponding build.

App NameJetpack Android
Build TypeDebug
Versionpr23135-0f35eb9
Build Number1498
Application IDcom.jetpack.android.prealpha
Commit0f35eb9
Installation URL0p41u0dd3pb9o
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in WordPress Android by scanning the QR code below to install the corresponding build.

App NameWordPress Android
Build TypeDebug
Versionpr23135-0f35eb9
Build Number1498
Application IDorg.wordpress.android.prealpha
Commit0f35eb9
Installation URL1h0qhs9aeg8io
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@oguzkocer
oguzkocer marked this pull request as ready for review July 23, 2026 20:13
@oguzkocer
oguzkocer requested a review from a team as a code owner July 23, 2026 20:13
@oguzkocer
oguzkocer requested a review from jkmassel July 23, 2026 20:13
@oguzkocer

Copy link
Copy Markdown
Contributor Author

Note that I have tested this while the apps were in Changes ready to publish state and the build successfully advanced the rollout from 0.001 to 0.01 without publishing the release.

Our hope was that this might be a way to automatically publish approved releases, but unfortunately, this only updates the initial rollout percentage if the release is not published yet.

Note that #23143 proposes promoting an existing beta release instead of creating a new one, which means we might not require a second review and this will be a moot point. Depending on how that goes, we might need to at least a note to the Slack message from this PR about this gotcha - or better yet have some kind of manual mechanism that starts this rollout process, instead of doing it on a schedule.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants