Skip to content

ci: Add new translation workflow for releases#29495

Merged
Gudahtt merged 10 commits into
mainfrom
crowdin-release-workflow
May 7, 2026
Merged

ci: Add new translation workflow for releases#29495
Gudahtt merged 10 commits into
mainfrom
crowdin-release-workflow

Conversation

@Gudahtt

@Gudahtt Gudahtt commented Apr 29, 2026

Copy link
Copy Markdown
Member

Description

Two new CI workflows have been added for uploading localized messages from releaase branches, and downloading translations onto releaase branches.

Today we only use main as the source for localized messages, and all translations go through main first, then get cherry-picked onto the current RC. This process risks the translations getting out-of-sync with the sources on the current release (since they're derived from the localized message sources on main), which could cause severe localization errors. This process is also time-consuming for the delivery team.

These updated workflows bypass that problem completely. Translations will always be in-sync on release branches, and we will have no conflicts.

In the future this will run on a schedule, but it's just configured for manual workflow dispatch for now, so that we can test it further.

Changelog

CHANGELOG entry: N/A

Related issues

This is adapted from an older experiment: #8565

Manual testing steps

This can't easily be tested (we'd have to setup a fork of the repo, and a new crowdin project, and new secrets, etc.). Instead it's configured to be run manually on targeted branches, so that we can test this after merge with minimal disruption.

Screenshots/Recordings

N/A

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Introduces new GitHub Actions that can create/commit translation PRs across release branches using a PAT, so misconfiguration could affect release branch contents and CI triggering (though currently dryrun_action: true limits impact).

Overview
Adds two manually-triggered Crowdin GitHub Actions workflows for release candidates.

crowdin-rc-upload-sources.yml uploads localization source strings from the current branch to the matching Crowdin branch.

crowdin-rc-download-translations.yml downloads approved translations and opens per-branch localization PRs; when run on main it first discovers open release/x.y.z PR branches targeting stable and runs across them via a matrix, otherwise it runs only for the current branch. Both workflows use METAMASKBOT_CROWDIN_TOKEN and are currently configured in dryrun_action mode.

Reviewed by Cursor Bugbot for commit ced3104. Bugbot is set up for automated code reviews on this repo. Configure here.

@Gudahtt Gudahtt requested a review from a team as a code owner April 29, 2026 14:39
@metamaskbotv2 metamaskbotv2 Bot added the team-core-platform Core Platform team label Apr 29, 2026
@Gudahtt Gudahtt force-pushed the crowdin-release-workflow branch from b670a30 to 5e7e3bf Compare April 29, 2026 14:41
@Gudahtt Gudahtt force-pushed the crowdin-release-workflow branch from 5e7e3bf to 69adc98 Compare April 29, 2026 14:43
Comment thread .github/workflows/crowdin-rc-download-translations.yml Outdated
Comment thread .github/workflows/crowdin-rc-download-translations.yml Outdated
Comment thread .github/workflows/crowdin-rc-download-translations.yml Outdated
@Gudahtt Gudahtt force-pushed the crowdin-release-workflow branch from 48a5137 to 729e6c2 Compare April 29, 2026 16:50
Comment thread .github/workflows/crowdin-rc-download-translations.yml Outdated
Comment thread .github/workflows/crowdin-rc-upload-sources.yml Outdated
Comment thread .github/workflows/crowdin-rc-download-translations.yml
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 98%
click to see 🤖 AI reasoning details

E2E Test Selection:
The two changed files are brand-new GitHub Actions workflow files for Crowdin localization management:

  1. crowdin-rc-download-translations.yml: Downloads approved translations from Crowdin for release candidate branches. Triggered only via workflow_dispatch (manual), currently in dry-run mode.
  2. crowdin-rc-upload-sources.yml: Uploads source strings to Crowdin for RC branches. Also triggered only via workflow_dispatch, also in dry-run mode.

These changes are purely CI/CD infrastructure for localization workflows. They:

  • Do NOT modify any app source code, UI components, controllers, or navigation
  • Do NOT affect any E2E test infrastructure (no changes to tests/, page-objects, fixtures, or detox config)
  • Are triggered only manually (workflow_dispatch), not on PR/push events
  • Are in dry-run mode, so they won't make actual changes even when manually triggered
  • Have zero impact on any user-facing functionality or test flows

No E2E tests need to run for these changes, and there is no performance impact whatsoever.

Performance Test Selection:
These are purely CI workflow files for Crowdin localization management with no app code changes. There is no performance impact on the app.

View GitHub Actions results


steps:
- name: Checkout
uses: actions/checkout@v3

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.

It looks like the versions are all over the place on mobile, but probably new ones should be @v6

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.

Yeah.... I noticed this, I was going to address in a follow-up PR. I was trying to keep this as similar as possible to the pre-existing crowdin workflows

Comment thread .github/workflows/crowdin-rc-download-translations.yml Outdated
@Gudahtt Gudahtt force-pushed the crowdin-release-workflow branch from 1b01ea5 to 3352802 Compare April 29, 2026 21:22
Gudahtt added 10 commits May 5, 2026 11:36
Two new CI workflows have been added for uploading localized messages
from releaase branches, and downloading translations onto releaase
branches.

Today we only use `main` as the source for localized messages, and all
translations go through `main` first, then get cherry-picked onto the
current RC. This process risks the translations getting out-of-sync
with the sources on the current release (since they're derived from the
localized message sources on `main`), which could cause severe
localization errors. This process is also time-consuming for the
delivery team.

These updated workflows bypass that problem completely. Translations
will always be in-sync on release branches, and we will have no
conflicts.
@Gudahtt Gudahtt force-pushed the crowdin-release-workflow branch from 89d94f3 to ced3104 Compare May 5, 2026 14:06

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ced3104. Configure here.


steps:
- name: Checkout
uses: actions/checkout@v3

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.

Outdated actions/checkout@v3 in new workflow files

Low Severity

Both new workflow files use actions/checkout@v3, which runs on the deprecated node16 runtime. The team standard for new workflow files is actions/checkout@v6 or later, as v4 and older run on runtimes being deprecated by GitHub. This was also flagged in the PR discussion.

Additional Locations (1)
Fix in Cursor Fix in Web

Triggered by learned rule: Use GitHub Actions v6+ instead of v4 — node20 runtime is deprecated

Reviewed by Cursor Bugbot for commit ced3104. Configure here.

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.

Intentional, to be updated in a later PR

@sonarqubecloud

sonarqubecloud Bot commented May 5, 2026

Copy link
Copy Markdown

@Gudahtt Gudahtt added team-core-platform Core Platform team and removed team-core-platform Core Platform team labels May 5, 2026
@Gudahtt Gudahtt added this pull request to the merge queue May 7, 2026
Merged via the queue into main with commit 3fe0354 May 7, 2026
69 of 70 checks passed
@Gudahtt Gudahtt deleted the crowdin-release-workflow branch May 7, 2026 17:08
@github-actions github-actions Bot locked and limited conversation to collaborators May 7, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.77.0 Issue or pull request that will be included in release 7.77.0 label May 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.77.0 Issue or pull request that will be included in release 7.77.0 size-M team-core-platform Core Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants