Skip to content

Add Linux platforms to upload_build_to_apps_cdn allowlist#720

Merged
iangmaia merged 2 commits into
wordpress-mobile:trunkfrom
ivan-ottinger:add-linux-platforms-to-upload-build-action
May 13, 2026
Merged

Add Linux platforms to upload_build_to_apps_cdn allowlist#720
iangmaia merged 2 commits into
wordpress-mobile:trunkfrom
ivan-ottinger:add-linux-platforms-to-upload-build-action

Conversation

@ivan-ottinger
Copy link
Copy Markdown
Contributor

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

Description

Resolves RSM-3058

Adds 'Linux - x64' and 'Linux - ARM64' to the VALID_PLATFORMS array in the upload_build_to_apps_cdn action.

WordPress.com Studio is wiring up Linux distribution to AppsCDN. The WPCOM-side Platform enum and the extension allowlist were updated in the WPCOM repo to accept these two platform values, but uploads still fail in CI because this fastlane action's client-side platform validation rejects them before the HTTP request reaches the server:

Error setting value 'Linux - x64' for option 'platform'
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

This PR closes that gap. Precedent: #672 added 'Microsoft Store - x64' and 'Windows - x64' to the same array.

Changes

No spec changes needed — spec/upload_build_to_apps_cdn_spec.rb already references described_class::VALID_PLATFORMS.join(', ') dynamically, so the existing tests automatically pick up the new entries.

How AI was used in this PR

AI-assisted: identified the gap by tracing the failure in a Studio CI build, located the file/lines to edit, and drafted this PR. Author reviewed.

Context

@iangmaia iangmaia enabled auto-merge May 13, 2026 12:54
@iangmaia iangmaia merged commit 2877f4d into wordpress-mobile:trunk May 13, 2026
7 checks passed
ivan-ottinger added a commit to Automattic/studio 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 to Automattic/studio 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.

2 participants