Skip to content

Migrate release uploads to Apps CDN - #1422

Merged
sejas merged 63 commits into
trunkfrom
update/STU-452-add-apps-cdn
Nov 7, 2025
Merged

Migrate release uploads to Apps CDN#1422
sejas merged 63 commits into
trunkfrom
update/STU-452-add-apps-cdn

Conversation

@sejas

@sejas sejas commented May 20, 2025

Copy link
Copy Markdown
Member

Related issues

Proposed Changes

  • Migrate Fastlane release uploads to Apps CDN.
  • Upgrade the wpmreleasetoolkit gem to version 13.7.

Testing Instructions

Make sure you have all the build files in the out folder. You can download them from buildkite.

out
├── make
│   └── squirrel.windows
│       └── x64
│           ├── RELEASES
│           ├── studio-setup.exe
│           └── studio-update.nupkg
│       └── arm64
│           ├── RELEASES
│           ├── studio-setup.exe
│           └── studio-update.nupkg
├── Studio-appx-x64-unsigned
│   └── studio-win32-v1.5.6-unsigned.appx
├── Studio-appx-arm64-unsigned
│   └── studio-win32-v1.5.6-unsigned.appx
├── Studio-darwin-arm64
│   └── Studio.app.zip
├── Studio-darwin-arm64.dmg
├── Studio-darwin-x64
│   └── Studio.app.zip
└── Studio-darwin-x64.dmg
  1. Test dev build distribution (dry run):
DRY_RUN=true BUILDKITE_BUILD_NUMBER=9999 bundle exec fastlane distribute_dev_build
  1. Check the file_paths point to existing files.

  2. Upload files to Apps CDN
    You can grab the WPCOM_API_TOKEN from the secret store.

WPCOM_API_TOKEN=12546 BUILDKITE_BUILD_NUMBER=1338 bundle exec fastlane distribute_dev_build
  1. Check the files exist on:

https://appscdn.wordpress.com/products/wordpress-com-studio/

  1. Confirm the https://appscdn.wordpress.com/builds/wordpress-com-studio/releases.json include the correct versions.

  2. To see the valid parameters that upload_build_to_apps_cdn accepts, you can execute:

bundle exec fastlane action upload_build_to_apps_cdn

Pre-merge Checklist

  • Have you checked for TypeScript, React or other console errors?
@sejas sejas self-assigned this May 20, 2025
@sejas sejas changed the title Upgrade wpmreleasetoolkit to v13 to use upload_build_to_apps_cdn May 20, 2025
@wojtekn
wojtekn requested a review from Copilot June 9, 2025 12:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Purpose: Migrate release uploads to Apps CDN by updating CDN URLs and related tooling.

  • Update CDN URLs in the release manifest generation script.
  • Update documentation to reference the correct manifest script filename.
  • Upgrade the fastlane-plugin-wpmreleasetoolkit gem to version 13.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
scripts/generate-releases-manifest.mjs Updated CDN URLs to point to Apps CDN.
docs/versioning-and-updates.md Adjusted script filename reference in documentation.
Gemfile Upgraded fastlane-plugin-wpmreleasetoolkit to v13.
Comment thread docs/versioning-and-updates.md Outdated
@sejas
sejas marked this pull request as ready for review June 11, 2025 09:12
Comment thread fastlane/Fastfile Outdated
@github-actions

github-actions Bot commented Oct 13, 2025

Copy link
Copy Markdown
Contributor

📊 Performance Test Results

Comparing 35d6ea6 vs trunk

site-editor

Metric trunk 35d6ea6 Diff Change
load 9215.00 ms 8868.00 ms -347.00 ms 🟢 -3.8%

site-startup

Metric trunk 35d6ea6 Diff Change
siteCreation 18034.00 ms 16081.00 ms -1953.00 ms 🟢 -10.8%
siteStartup 4929.00 ms 3953.00 ms -976.00 ms 🟢 -19.8%

Results are median values from multiple test runs.

Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change

@sejas sejas removed the DO NOT MERGE label Nov 4, 2025
@sejas

sejas commented Nov 4, 2025

Copy link
Copy Markdown
Member Author

@AliSoftware , @mokagio , Could I get a confidence check on this PR? I'm still investigating the root cause of Studio updates failing on STU-707 but I would like to clear this side.

If updates are not fully working this week, what would you think about using the new APPS CDN for full builds and the former CDN for updates until we find a solution?

I successfully uploaded the Mac versions and Windows ARM64 of Studio v1.6.2 by downloading the builds from buildkite to the out folder and then running WPCOM_API_TOKEN='*****' BUILDKITE_BUILD_NUMBER=8428 BUILDKITE_TAG=v1.6.2 bundle exec fastlane distribute_release_build.

I commented the Windows - x64 versions because we are renaming that platform name.

Here is the log of the upload:

[✔] 🚀 
+-------------------------------------------------------------------------+
|                              Used plugins                               |
+-------------------------------+---------+-------------------------------+
| Plugin                        | Version | Action                        |
+-------------------------------+---------+-------------------------------+
| fastlane-plugin-wpmreleaseto  | 13.6.0  | an_localize_libs,             |
| olkit                         |         | an_update_metadata_source,    |
|                               |         | an_validate_lib_strings,      |
|                               |         | android_build_preflight,      |
|                               |         | android_create_avd,           |
|                               |         | android_create_xml_release_n  |
|                               |         | otes,                         |
|                               |         | android_current_branch_is_ho  |
|                               |         | tfix,                         |
|                               |         | android_download_file_by_ver  |
|                               |         | sion,                         |
|                               |         | android_download_translation  |
|                               |         | s, android_firebase_test,     |
|                               |         | android_launch_emulator,      |
|                               |         | android_send_app_size_metric  |
|                               |         | s,                            |
|                               |         | android_shutdown_emulator,    |
|                               |         | android_update_release_notes  |
|                               |         | ,                             |
|                               |         | buildkite_add_trigger_step,   |
|                               |         | buildkite_annotate,           |
|                               |         | buildkite_metadata,           |
|                               |         | buildkite_pipeline_upload,    |
|                               |         | buildkite_trigger_build,      |
|                               |         | check_for_toolkit_updates,    |
|                               |         | check_translation_progress,   |
|                               |         | circleci_trigger_job,         |
|                               |         | close_milestone,              |
|                               |         | comment_on_pr,                |
|                               |         | copy_branch_protection,       |
|                               |         | create_github_release,        |
|                               |         | create_new_milestone,         |
|                               |         | create_release_backmerge_pul  |
|                               |         | l_request,                    |
|                               |         | extract_release_notes_for_ve  |
|                               |         | rsion, find_previous_tag,     |
|                               |         | firebase_login,               |
|                               |         | get_prs_between_tags,         |
|                               |         | gp_downloadmetadata,          |
|                               |         | gp_update_metadata_source,    |
|                               |         | openai_ask,                   |
|                               |         | promo_screenshots,            |
|                               |         | prototype_build_details_comm  |
|                               |         | ent, publish_github_release,  |
|                               |         | remove_branch_protection,     |
|                               |         | set_branch_protection,        |
|                               |         | set_milestone_frozen_marker,  |
|                               |         | update_assigned_milestone,    |
|                               |         | upload_build_to_apps_cdn,     |
|                               |         | upload_to_s3,                 |
|                               |         | configure_add_files_to_copy,  |
|                               |         | configure_apply,              |
|                               |         | configure_download,           |
|                               |         | configure_setup,              |
|                               |         | configure_update,             |
|                               |         | configure_validate,           |
|                               |         | add_development_certificates  |
|                               |         | _to_provisioning_profiles,    |
|                               |         | add_devices_to_provisioning_  |
|                               |         | profiles,                     |
|                               |         | ios_build_preflight,          |
|                               |         | ios_check_beta_deps,          |
|                               |         | ios_download_strings_files_f  |
|                               |         | rom_glotpress,                |
|                               |         | ios_extract_keys_from_string  |
|                               |         | s_files,                      |
|                               |         | ios_generate_strings_file_fr  |
|                               |         | om_code,                      |
|                               |         | ios_get_store_app_sizes,      |
|                               |         | ios_lint_localizations,       |
|                               |         | ios_merge_strings_files,      |
|                               |         | ios_send_app_size_metrics,    |
|                               |         | ios_update_metadata_source,   |
|                               |         | ios_update_release_notes      |
+-------------------------------+---------+-------------------------------+

[11:43:19]: Driving the lane 'distribute_release_build' 🚀
[11:43:19]: ----------------------
[11:43:19]: --- Step: setup_ci ---
[11:43:19]: ----------------------
[11:43:19]: Not running on CI, skipping CI setup
[11:43:19]: -----------------------------
[11:43:19]: --- Step: last_git_commit ---
[11:43:19]: -----------------------------
[11:43:19]: Running in NORMAL mode
[11:43:19]: Uploading 7 builds (release: all builds)
[11:43:19]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64/Studio.app.zip to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64/Studio-x64-v1.6.2.zip
[11:43:20]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64/Studio-x64-v1.6.2.zip
[11:43:20]: --------------------------------------
[11:43:20]: --- Step: upload_build_to_apps_cdn ---
[11:43:20]: --------------------------------------
[11:43:20]: Uploading build to Apps CDN...
[11:44:09]: Build successfully uploaded to Apps CDN
[11:44:09]: Post ID: 737
[11:44:09]: Post URL: https://appscdn.wordpress.com/?p=737
[11:44:09]: --------------------------------
[11:44:09]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64/Studio-x64-v1.6.2.zip to https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-intel/v1.6.2/8428/update
[11:44:09]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64/Studio.app.zip to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64/Studio-arm64-v1.6.2.zip
[11:44:09]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64/Studio-arm64-v1.6.2.zip
[11:44:09]: --------------------------------------
[11:44:09]: --- Step: upload_build_to_apps_cdn ---
[11:44:09]: --------------------------------------
[11:44:09]: Uploading build to Apps CDN...
[11:44:57]: Build successfully uploaded to Apps CDN
[11:44:57]: Post ID: 739
[11:44:57]: Post URL: https://appscdn.wordpress.com/?p=739
[11:44:57]: --------------------------------
[11:44:57]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64/Studio-arm64-v1.6.2.zip to https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-silicon/v1.6.2/8428/update
[11:44:57]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-update.nupkg to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-update-arm64-v1.6.2.nupkg
[11:44:57]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-update-arm64-v1.6.2.nupkg
[11:44:57]: --------------------------------------
[11:44:57]: --- Step: upload_build_to_apps_cdn ---
[11:44:57]: --------------------------------------
[11:44:57]: Uploading build to Apps CDN...
[11:45:33]: Build successfully uploaded to Apps CDN
[11:45:33]: Post ID: 741
[11:45:33]: Post URL: https://appscdn.wordpress.com/?p=741
[11:45:33]: --------------------------------
[11:45:33]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-update-arm64-v1.6.2.nupkg to https://appscdn.wordpress.com/downloads/wordpress-com-studio/windows-arm64/v1.6.2/8428/update
[11:45:33]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64.dmg to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64-v1.6.2.dmg
[11:45:33]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64-v1.6.2.dmg
[11:45:33]: --------------------------------------
[11:45:33]: --- Step: upload_build_to_apps_cdn ---
[11:45:33]: --------------------------------------
[11:45:33]: Uploading build to Apps CDN...
[11:46:18]: Build successfully uploaded to Apps CDN
[11:46:18]: Post ID: 743
[11:46:18]: Post URL: https://appscdn.wordpress.com/?p=743
[11:46:18]: --------------------------------
[11:46:18]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-x64-v1.6.2.dmg to https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-intel/v1.6.2/8428/full-install
[11:46:18]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64.dmg to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64-v1.6.2.dmg
[11:46:18]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64-v1.6.2.dmg
[11:46:18]: --------------------------------------
[11:46:18]: --- Step: upload_build_to_apps_cdn ---
[11:46:18]: --------------------------------------
[11:46:18]: Uploading build to Apps CDN...
[11:47:05]: Build successfully uploaded to Apps CDN
[11:47:05]: Post ID: 745
[11:47:05]: Post URL: https://appscdn.wordpress.com/?p=745
[11:47:05]: --------------------------------
[11:47:05]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-darwin-arm64-v1.6.2.dmg to https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-silicon/v1.6.2/8428/full-install
[11:47:05]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-setup.exe to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-setup-arm64-v1.6.2.exe
[11:47:05]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-setup-arm64-v1.6.2.exe
[11:47:05]: --------------------------------------
[11:47:05]: --- Step: upload_build_to_apps_cdn ---
[11:47:05]: --------------------------------------
[11:47:05]: Uploading build to Apps CDN...
[11:47:44]: Build successfully uploaded to Apps CDN
[11:47:44]: Post ID: 747
[11:47:44]: Post URL: https://appscdn.wordpress.com/?p=747
[11:47:44]: --------------------------------
[11:47:44]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/arm64/studio-setup-arm64-v1.6.2.exe to https://appscdn.wordpress.com/downloads/wordpress-com-studio/windows-arm64/v1.6.2/8428/full-install
[11:47:44]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-appx-arm64-unsigned/Studio 1.6.2.0 unsigned.appx to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-appx-arm64-unsigned/Studio 1.6.2.0 unsigned-arm64-v1.6.2.appx
[11:47:44]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-appx-arm64-unsigned/Studio 1.6.2.0 unsigned-arm64-v1.6.2.appx
[11:47:44]: --------------------------------------
[11:47:44]: --- Step: upload_build_to_apps_cdn ---
[11:47:44]: --------------------------------------
[11:47:44]: Uploading build to Apps CDN...
[11:48:41]: Build successfully uploaded to Apps CDN
[11:48:41]: Post ID: 749
[11:48:41]: Post URL: https://appscdn.wordpress.com/?p=749
[11:48:41]: --------------------------------
[11:48:41]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/Studio-appx-arm64-unsigned/Studio 1.6.2.0 unsigned-arm64-v1.6.2.appx to https://appscdn.wordpress.com/downloads/wordpress-com-studio/microsoft-store-arm64/v1.6.2/8428/full-install
[11:48:41]: --------------------------------
[11:48:41]: --- Step: buildkite_annotate ---
[11:48:41]: --------------------------------
[11:48:41]: $ buildkite-agent annotate --context cdn-link --style info \🔗\ Build\ available\ for\ \[Mac\ Intel\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-intel/v1.6.2/8428/update\),\ \[Mac\ Apple\ Silicon\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-silicon/v1.6.2/8428/update\),\ \[Windows\ Update\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/windows-arm64/v1.6.2/8428/update\),\ \[Mac\ Intel\ \(DMG\)\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-intel/v1.6.2/8428/full-install\),\ \[Mac\ Apple\ Silicon\ \(DMG\)\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/mac-silicon/v1.6.2/8428/full-install\),\ \[Windows\ -\ ARM64\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/windows-arm64/v1.6.2/8428/full-install\),\ \[Windows\ \(Unsigned\ Appx\)\]\(https://appscdn.wordpress.com/downloads/wordpress-com-studio/microsoft-store-arm64/v1.6.2/8428/full-install\)
+-------------------------------------------------------------------------------------------+
|                                       Lane Context                                        |
+----------------------------+--------------------------------------------------------------+
| PLATFORM_NAME              |                                                              |
| LANE_NAME                  | distribute_release_build                                     |
| APPS_CDN_UPLOADED_POST_ID  | 749                                                          |
| APPS_CDN_UPLOADED_POST_URL | https://appscdn.wordpress.com/?p=749                         |
| APPS_CDN_UPLOADED_FILE_ID  | 748                                                          |
| APPS_CDN_UPLOADED_FILE_URL | https://appscdn.wordpress.com/downloads/wordpress-com-studi  |
|                            | o/microsoft-store-arm64/v1.6.2/8428/full-install             |
+----------------------------+--------------------------------------------------------------+
[11:48:41]: Called from Fastfile at line 244
[11:48:41]: ```
[11:48:41]:     242:
[11:48:41]:     243:      unless DRY_RUN
[11:48:41]:  => 244:        buildkite_annotate(
[11:48:41]:     245:          context: 'cdn-link',
[11:48:41]:     246:          style: 'info',
[11:48:41]: ```
[11:48:41]: No such file or directory - buildkite-agent

+-----------------------------------------------+
|               fastlane summary                |
+------+--------------------------+-------------+
| Step | Action                   | Time (in s) |
+------+--------------------------+-------------+
| 1    | setup_ci                 | 0           |
| 2    | last_git_commit          | 0           |
| 3    | upload_build_to_apps_cdn | 49          |
| 4    | upload_build_to_apps_cdn | 47          |
| 5    | upload_build_to_apps_cdn | 35          |
| 6    | upload_build_to_apps_cdn | 44          |
| 7    | upload_build_to_apps_cdn | 46          |
| 8    | upload_build_to_apps_cdn | 38          |
| 9    | upload_build_to_apps_cdn | 57          |
| 💥   | buildkite_annotate       | 0           |
+------+--------------------------+-------------+

[11:48:41]: fastlane finished with errors
Screenshot 2025-11-04 at 11 59 57
@sejas
sejas requested review from AliSoftware and mokagio November 4, 2025 12:49
@AliSoftware

Copy link
Copy Markdown
Contributor

If updates are not fully working this week, what would you think about using the new APPS CDN for full builds and the former CDN for updates until we find a solution?

tbh I don't have a strong opinion about this.
If using a mix of both CDNs until you can fix the issues you're having with updates in STU-707 works for you, I'm ok with it. Though I feel it might make the Fastfile a bit complicated to follow (having to keep the implementation for both approaches, at least until STU-707 is solved), but might be better than keeping this PR blocked for too long? 🤷

@sejas

sejas commented Nov 5, 2025

Copy link
Copy Markdown
Member Author

I was not able to reproduce the update error, but I couldn't confirm the updates work either. I asked in Slack p1762286271710999-slack-CC7L49W13 and we might give it a try on production ✨.

@sejas

sejas commented Nov 5, 2025

Copy link
Copy Markdown
Member Author

I updated wpmreleasetoolkit to 13.7 and successfully uploaded Windows - x64.

Here is the log of the upload:

[23:07:20]: Driving the lane 'distribute_release_build' 🚀
[23:07:20]: ----------------------
[23:07:20]: --- Step: setup_ci ---
[23:07:20]: ----------------------
[23:07:20]: Not running on CI, skipping CI setup
[23:07:20]: -----------------------------
[23:07:20]: --- Step: last_git_commit ---
[23:07:20]: -----------------------------
[23:07:20]: Running in NORMAL mode
[23:07:20]: Uploading 2 builds (release: all builds)
[23:07:20]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-update.nupkg to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-update-x64-v1.6.2.nupkg
[23:07:20]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-update-x64-v1.6.2.nupkg
[23:07:20]: --------------------------------------
[23:07:20]: --- Step: upload_build_to_apps_cdn ---
[23:07:20]: --------------------------------------
[23:07:20]: Uploading build to Apps CDN...
[23:08:02]: Build successfully uploaded to Apps CDN
[23:08:02]: Post ID: 755
[23:08:02]: Post URL: https://appscdn.wordpress.com/?p=755
[23:08:02]: --------------------------------
[23:08:02]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-update-x64-v1.6.2.nupkg to https://appscdn.wordpress.com/downloads/wordpress-com-studio/windows-x64/v1.6.2/8428/update
[23:08:02]: Copying /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-setup.exe to /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-setup-x64-v1.6.2.exe
[23:08:03]: Uploading file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-setup-x64-v1.6.2.exe
[23:08:03]: --------------------------------------
[23:08:03]: --- Step: upload_build_to_apps_cdn ---
[23:08:03]: --------------------------------------
[23:08:03]: Uploading build to Apps CDN...
[23:08:49]: Build successfully uploaded to Apps CDN
[23:08:49]: Post ID: 757
[23:08:49]: Post URL: https://appscdn.wordpress.com/?p=757
[23:08:49]: --------------------------------
[23:08:49]: ✅ Uploaded file: /Users/macbookpro/Documents/projects-m3.nosync/studio/out/make/squirrel.windows/x64/studio-setup-x64-v1.6.2.exe to https://appscdn.wordpress.com/downloads/wordpress-com-studio/windows-x64/v1.6.2/8428/full-install

@mokagio mokagio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sejas the code looks good, only a few nitpicks that don't need to be addressed before merging.

I haven't followed this long running conversation, but from my understanding of the latest messages shared between Slack and Linear, I think the next step is to ship to prod?

If so, here's an approval. Let's try it!


When CI has finished building installers it uploads installers _and_ the
releases manifest to the CDN for distribution.
The `releases.json` file serves as an authoritative source of update information for the App to update. It is generated entirely by the Apps CDN endpoint https://appscdn.wordpress.com/builds/wordpress-com-studio/releases.json proxied from https://public-api.wordpress.com/wpcom/v2/studio-app/updates?platform=darwin&arch=arm64&version=1.5.3-dev2

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

proxied from https://public-api.wordpress.com/wpcom/v2/studio-app/updates?platform=darwin&arch=arm64&version=1.5.3-dev2

Hitting that URL returns:

{"url":"https:\/\/cdn.a8c-ci.services\/studio\/studio-darwin-arm64-v1.6.2-dev64.app.zip"}

The way I read this line, it means that for each platform and architecture Apps CDN uses https://public-api.wordpress.com/wpcom/v2/studio-app/updates?platform=<platform>&arch=<arch>&version=<latest version?> to get the values to put in the JSON. cc @hannahtinkler

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The initial idea was to generate and upload the releases.json to the old CDN, but we decided to create the equivalent version in our infrastructure https://appscdn.wordpress.com/builds/wordpress-com-studio/releases.json . That file is generated dynamically.
We can optimize the logic in the near future and Studio endpoint could https://public-api.wordpress.com/wpcom/v2/studio-app/updates could access the builds in the database and return the URL without needing the intermediary releases.json, but that can be a follow-up optimization. Also, I'm not sure if a similar logic is necessary for other Electron apps.

Comment thread fastlane/Fastfile Outdated
Comment thread fastlane/Fastfile Outdated
Comment thread fastlane/Fastfile Outdated
@sejas

sejas commented Nov 6, 2025

Copy link
Copy Markdown
Member Author

@mokagio, thanks for the review! ✨
I'll merge this PR after we release Studio v1.6.3, probably tomorrow. And update that version manually one last time. I won't deploy the change in the updates endpoint yet. That way we can test the updates with more control and will allow switching between CDNs updates more easily, because the latest version will be available in both CDNs. Next week YOLO will be in a meetup with reduced bandwidth.

@sejas

sejas commented Nov 7, 2025

Copy link
Copy Markdown
Member Author

I manually uploaded v1.6.3. Future releases will be uploaded using CI. Current updates will be held in v1.6.3 until we test and ship 185772-ghe-Automattic/wpcom.

We started using the new /latest links in all landing pages.

@sejas
sejas merged commit e879c4e into trunk Nov 7, 2025
10 checks passed
@sejas
sejas deleted the update/STU-452-add-apps-cdn branch November 7, 2025 13:11
@sejas

sejas commented Nov 7, 2025

Copy link
Copy Markdown
Member Author

@mokagio , @AliSoftware , do you know what's the best way to set the WPCOM_API_TOKEN ENV variable in Buildkite?

I also asked in Slack p1762534174984229-slack-CC7L49W13

It's not urgent because we already released the latest version before merging this PR.

@AliSoftware

Copy link
Copy Markdown
Contributor

@mokagio , @AliSoftware , do you know what's the best way to set the WPCOM_API_TOKEN ENV variable in Buildkite?

TL;DR you need to export the variable in ~/.mobile-secrets/CI/secrets/studio/env to expose the secret to CI — See PCYsg-iIC-p2

But I guess this was already answered in Slack, alongside a debate wether you should use a different token for studio vs using the same as other apps, so let's keep the rest of the discussion in Slack 🙂

@sejas

sejas commented Nov 7, 2025

Copy link
Copy Markdown
Member Author

Thanks for sharing the FG link!. Let's continue in Slack 👌 .

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

Labels

None yet

4 participants