Skip to content

Conversation

@sejas
Copy link
Member

@sejas sejas commented May 20, 2025

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 Migrate release uploads to Apps CDN May 20, 2025
@wojtekn wojtekn requested a review from Copilot June 9, 2025 12:34
Copy link

Copilot AI left a comment

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.

@sejas sejas marked this pull request as ready for review June 11, 2025 09:12
@sejas
Copy link
Member Author

sejas commented Aug 14, 2025

We shouldn't merge this PR until STU-707 is solved.

@github-actions
Copy link

github-actions bot commented Oct 13, 2025

📊 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
Copy link
Member Author

sejas commented Nov 4, 2025

@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
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
Copy link
Member Author

sejas commented Nov 5, 2025

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
Copy link
Member Author

sejas commented Nov 5, 2025

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

Copy link
Contributor

@mokagio mokagio left a comment

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
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
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.

@sejas
Copy link
Member Author

sejas commented Nov 6, 2025

@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
Copy link
Member Author

sejas commented Nov 7, 2025

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
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.

4 participants