Skip to content

Add per-commit TestFlight builds for WordPress, Jetpack, and Reader#25674

Draft
jkmassel wants to merge 2 commits into
trunkfrom
jkmassel/tf-internal-upload-on-merge
Draft

Add per-commit TestFlight builds for WordPress, Jetpack, and Reader#25674
jkmassel wants to merge 2 commits into
trunkfrom
jkmassel/tf-internal-upload-on-merge

Conversation

@jkmassel

Copy link
Copy Markdown
Contributor

Description

Phase 1 of the Faster Releases RFC: make every CI build produce a TestFlight build for WordPress, Jetpack, and Reader, so that "releasing" can later become "submit a build that's already been in TestFlight for days."

This is additive — the existing code-freeze / beta / finalize release pipeline is untouched and remains the source of truth until this flow is proven.

What's here

  • build_and_upload_app_for_testflight(app:) (fastlane/lanes/build.rb) — builds one app for the App Store and uploads it to TestFlight for internal testers only (distribute_external: false). Build code = <VERSION_SHORT>.0.<BUILDKITE_BUILD_NUMBER> via xcargs, the same mechanism Reader and prototype builds already use. Keeps the Sentry dSYM + Gutenberg sourcemap uploads for WP/JP.
  • .buildkite/commands/build-and-upload-testflight.sh — per-app entry point, mirrors the existing release-build-*.sh setup.
  • Buildkite matrix step (.buildkite/pipeline.yml) — fans out over wordpress / jetpack / reader in parallel.

Decisions (from the RFC discussion)

  • Build code from the Buildkite number — unique per marketing version and monotonic, which is all App Store Connect requires.
  • Internal-only distribution for now; the a8c-staff and public-beta groups arrive in later phases.
  • VERSION_SHORT left as-is; the versioning / pre-allocation strategy is deferred to go-live.
  • "What's new" is a TBD placeholder (commit metadata) for now.

⚠️ Not yet ready for trunk

The matrix step is intentionally not gated to trunk so we can exercise it in CI on this branch. Before merge, gate each step with if: "build.branch == 'trunk'" (there's a TODO in pipeline.yml). Note that Reader's marketing version moves from the 0.0 placeholder to the shared VERSION_SHORT.

Testing instructions

  • Watch the TestFlight Builds matrix group on this PR's Buildkite run — three parallel jobs (WordPress / Jetpack / Reader) should each build, upload to TestFlight, and land under the app's internal testers.
  • Confirm the uploaded build code is <VERSION_SHORT>.0.<this build number> and that no external testers were notified.

Phase 1 of the "Faster Releases" RFC: every CI build produces a TestFlight
build for all three apps, using the Buildkite build number as the build code.

- `build_and_upload_app_for_testflight(app:)` builds one app and uploads it
  to TestFlight for internal testers only.
- `.buildkite/commands/build-and-upload-testflight.sh` runs it, fanned out
  per app via a Buildkite matrix step.
- Build code = `<VERSION_SHORT>.0.<BUILDKITE_BUILD_NUMBER>`.

Intentionally not gated to trunk yet so the flow can be exercised in CI. The
existing release pipeline is untouched.
@dangermattic

Copy link
Copy Markdown
Collaborator
1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

@wpmobilebot

wpmobilebot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor
App Icon📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress
ConfigurationRelease-Alpha
Build Number32723
VersionPR #25674
Bundle IDorg.wordpress.alpha
Commit21e91d4
Installation URL3b15ja0d6oe9g
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

wpmobilebot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor
App Icon📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack
ConfigurationRelease-Alpha
Build Number32723
VersionPR #25674
Bundle IDcom.jetpack.alpha
Commit21e91d4
Installation URL2obd6deg6muto
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

🤖 Build Failure Analysis

This build has failures. Claude has analyzed them - check the build annotations for details.

Reader's App Store archive has been broken since #25321 (PostHelper moved to the
app target without updating the Reader target), and went undetected after #25179
removed Reader from CI. WordPress and Jetpack build and upload fine.

Reader is commented out of the matrix and the local wrapper; the per-app lane
still supports `app: 'reader'`, so re-enabling is a one-line change once the
Reader target archives again.
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.

3 participants