-
Notifications
You must be signed in to change notification settings - Fork 51
Migrate release uploads to Apps CDN #1422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this 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. |
|
We shouldn't merge this PR until STU-707 is solved. |
📊 Performance Test ResultsComparing 35d6ea6 vs trunk site-editor
site-startup
Results are median values from multiple test runs. Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change |
|
@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 I commented the Here is the log of the upload:
|
tbh I don't have a strong opinion about this. |
|
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 ✨. |
|
I updated Here is the log of the upload: |
There was a problem hiding this 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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
|
@mokagio, thanks for the review! ✨ |
|
I manually uploaded We started using the new |

Related issues
Proposed Changes
Testing Instructions
Make sure you have all the build files in the
outfolder. You can download them from buildkite.DRY_RUN=true BUILDKITE_BUILD_NUMBER=9999 bundle exec fastlane distribute_dev_buildCheck the file_paths point to existing files.
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_buildhttps://appscdn.wordpress.com/products/wordpress-com-studio/
Confirm the https://appscdn.wordpress.com/builds/wordpress-com-studio/releases.json include the correct versions.
To see the valid parameters that
upload_build_to_apps_cdnaccepts, you can execute:bundle exec fastlane action upload_build_to_apps_cdnPre-merge Checklist