Skip to content

Revert "Distribute Linux dev builds to AppsCDN" (#3363)#3462

Merged
ivan-ottinger merged 1 commit into
trunkfrom
revert-3363-distribute-linux-dev-builds
May 13, 2026
Merged

Revert "Distribute Linux dev builds to AppsCDN" (#3363)#3462
ivan-ottinger merged 1 commit into
trunkfrom
revert-3363-distribute-linux-dev-builds

Conversation

@ivan-ottinger
Copy link
Copy Markdown
Contributor

@ivan-ottinger ivan-ottinger commented May 13, 2026

Related issues

Reverts #3363. Restoring this once the upstream fix lands in the wordpress-mobile/release-toolkit plugin.

How AI was used in this PR

AI-assisted: diagnosed the post-merge failure from the Buildkite log, identified the gap in the fastlane plugin's platform allowlist, and drafted this revert. Author reviewed.

Why we're reverting

After #3363 merged, the next trunk build's Distribute Dev Builds step (Buildkite #16073) failed with:

Error setting value 'Linux - x64' for option 'platform'
You passed invalid parameters to 'upload_build_to_apps_cdn'.
Platform must be one of: Android, iOS, Mac - Silicon, Mac - Intel, Mac - Any,
Windows - x86, Windows - x64, Windows - ARM64,
Microsoft Store - x86, Microsoft Store - x64, Microsoft Store - ARM64

The upload_build_to_apps_cdn fastlane action (from the wordpress-mobile/release-toolkit gem, pinned at ~> 14.2) has a client-side allowlist baked into its VALID_PLATFORMS constant (lib/fastlane/plugin/wpmreleasetoolkit/actions/common/upload_build_to_apps_cdn.rb:31-43). That list doesn't include 'Linux - x64' or 'Linux - ARM64', so the action rejects our call before it ever reaches WPCOM.

The WPCOM-side allowlist updates (the enum + extension MIME types) are landed and correct — they handle the server-side validation. But the client-side validation in the fastlane plugin is a separate codebase that also needs to be updated. We missed that gap before merging.

Impact while #3363 was on trunk:

  • Mac and Windows dev builds did upload to AppsCDN (they iterate first in the loop).
  • Linux upload raised, terminating the loop before the buildkite_annotate summary fired.
  • The Distribute Dev Builds step shows red despite Mac/Windows being in CDN — confusing for anyone watching trunk.
  • Every subsequent trunk merge would hit the same failure, blocking the visible distribution annotation indefinitely.

Reverting restores the clean Mac/Windows distribution flow until the plugin gap is fixed upstream.

Proposed Changes

Reverts the two-file change from #3363:

  • .buildkite/pipeline.yml: drops dev-linux from Distribute Dev Builds's depends_on and removes the *.deb artifact download.
  • fastlane/Fastfile: removes the linux_deb_path helper, the release_tag.nil? block adding Linux entries to update_builds, and the related comment.

Next steps after this lands

  1. Open a PR against wordpress-mobile/release-toolkit adding 'Linux - x64' and 'Linux - ARM64' to VALID_PLATFORMS in upload_build_to_apps_cdn.rb. Precedent: their PR Studio: Display spinner when the site is being pulled #672 added 'Microsoft Store - x64' and 'Windows - x64' to the same array.
  2. Wait for the plugin's next gem release.
  3. Bump the Gemfile to that version.
  4. Re-apply Distribute Linux dev builds to AppsCDN #3363's changes (cherry-pick or fresh PR).
  5. Re-verify on the next trunk distribute.

Testing Instructions

  1. Open the next trunk build after this merges.
  2. Confirm Distribute Dev Builds step succeeds and the buildkite_annotate summary lists Mac and Windows (and only those) in the "🔗 Build available for ..." message.

Pre-merge Checklist

  • Have you checked for TypeScript, React or other console errors?
  • Trunk's Distribute Dev Builds step succeeds again after this lands.

@ivan-ottinger ivan-ottinger self-assigned this May 13, 2026
@ivan-ottinger ivan-ottinger requested review from a team and gavande1 May 13, 2026 09:52
@ivan-ottinger ivan-ottinger merged commit 6f331a7 into trunk May 13, 2026
12 checks passed
@ivan-ottinger ivan-ottinger deleted the revert-3363-distribute-linux-dev-builds branch May 13, 2026 09:57
ivan-ottinger added a commit that referenced this pull request May 14, 2026
## Related issues
Unblocks [#3464](#3464) (Linux
dev build distribution re-apply).

## How AI was used in this PR
AI-assisted: ran the `bundle update --conservative` command, drafted
this PR body. Author reviewed.

## Proposed Changes
Bumps `fastlane-plugin-wpmreleasetoolkit` to v14.6.0 to pick up Linux
platform support added upstream in
[wordpress-mobile/release-toolkit#720](wordpress-mobile/release-toolkit#720).
Without this, the `upload_build_to_apps_cdn` action in Studio's fastlane
lanes rejects `'Linux - x64'` and `'Linux - ARM64'` as invalid platform
values client-side, which is what failed [build
#16073](https://buildkite.com/automattic/studio/builds/16073) and
prompted the revert in
[#3462](#3462).

The lockfile changes are limited to the targeted gem and its required
deps (used `bundle update --conservative`): the gem bump itself, removal
of `activesupport` and its transitive deps (release-toolkit dropped that
dep in 14.3.1), and bumps for `aws-sdk-core`/`kms`/`s3` which
release-toolkit's google-cloud-storage requires. `nokogiri` requirement
also tightens (14.6.0 raised its minimum).

## Testing Instructions
CI passing is the test. Existing macOS/Windows distribution behavior is
unchanged — the new gem adds platform values without modifying existing
ones.

## Pre-merge Checklist
- [ ] Have you checked for TypeScript, React or other console errors?
- [ ] CI is green.
ivan-ottinger added a commit that referenced this pull request May 15, 2026
## Related issues

Re-applies #3363 after it was reverted in #3462. Blocked on the upstream
fastlane-plugin gap landing — see
[RSM-3058](https://linear.app/a8c/issue/RSM-3058/add-linux-to-upload-build-to-apps-cdn-platform-allowlist-in-release)
and
[wordpress-mobile/release-toolkit#720](wordpress-mobile/release-toolkit#720).

## How AI was used in this PR

AI-assisted: re-applied the original change as a revert-of-revert
commit, drafted this PR body explaining the dependency chain. Author
reviewed.

## Why this PR exists

The original #3363 wired Linux DEBs into the existing dev-distribution
flow (fastlane + Buildkite). On merge it caused trunk's `Distribute Dev
Builds` step to fail because the `upload_build_to_apps_cdn` fastlane
action has a **client-side platform allowlist** that doesn't include
Linux. We reverted in #3462 to restore trunk health.

The upstream fix is in flight at
[wordpress-mobile/release-toolkit#720](wordpress-mobile/release-toolkit#720),
which adds `'Linux - x64'` and `'Linux - ARM64'` to the action's
`VALID_PLATFORMS` constant. Once that PR merges and a new gem version is
released, we can re-apply the original Studio-side change and ship Linux
dev distribution.

## What this PR contains

Pure re-apply of #3363 (revert-of-revert commit). Two files:

- `.buildkite/pipeline.yml`: adds `- step: dev-linux` to `Distribute Dev
Builds`'s `depends_on` and `buildkite-agent artifact download "*.deb" .`
to its command block.
- `fastlane/Fastfile`: adds the `linux_deb_path` helper and the
`release_tag.nil?` block with the two Linux entries (`linux_x64_deb`,
`linux_arm64_deb`).

No changes to `Gemfile` / `Gemfile.lock` here — that bump comes as a
separate, smaller PR landed **before** this one (see merge order below).

## Merge order (important)

1.
[wordpress-mobile/release-toolkit#720](wordpress-mobile/release-toolkit#720)
merges → release-toolkit team cuts a new gem release.
2. **Separate small PR** bumps Studio's `Gemfile.lock` to the new gem
version (via `bundle update fastlane-plugin-wpmreleasetoolkit`). The
`Gemfile` pessimistic constraint (`~> 14.2`) already accepts the new
minor version, so only the lock file changes.
3. This PR is marked ready for review, CI runs against the bumped gem,
reviewed, merged.
4. Next trunk build's `Distribute Dev Builds` should now succeed for all
three platforms.

Until step 2 lands, this PR's CI will keep hitting the same
plugin-validation error as #3363 did. It stays draft until then.

## Out of scope

- **Release pipeline Linux integration
([RSM-2587](https://linear.app/a8c/issue/RSM-2587/wire-linux-into-the-release-pipeline)).**
A separate PR will wire Linux into
`.buildkite/release-build-and-distribute.yml` and lift the
`release_tag.nil?` gate from `Fastfile`. Conceptually expands the same
Linux distribution work to release-time uploads, but it's a different
pipeline file and a meaningfully different blast radius, so it deserves
its own PR.

## Testing Instructions

Once the gem bump PR lands and this is marked ready:

1. Push a commit (or let CI re-run on the existing commit) and confirm
`Lint`, `Unit Tests`, `E2E Tests`, `Performance Metrics` all stay green.
2. After merge, watch the first trunk build's `Distribute Dev Builds`
step. Should succeed and the log should contain CDN URLs for both Linux
entries (`Linux - x64`, `Linux - ARM64`) alongside the existing Mac and
Windows uploads.
3. Optionally `curl -IL` one of the returned Linux CDN URLs to confirm
it serves the `.deb`.

## Pre-merge Checklist

- [ ] Have you checked for TypeScript, React or other console errors?
- [ ] Gemfile.lock bump PR is merged.
- [ ] Trunk's `Distribute Dev Builds` step succeeds end-to-end after
this lands and reports CDN URLs for both Linux entries.

Co-authored-by: Rahul Gavande <rahul.gavande@automattic.com>
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.

1 participant