mirror of https://github.com/grafana/grafana
I18n: Refactor crowdin workflow (#81571)
* refactor: crowdin config * feat: add GH actions * refactor: remove old GH action * refactor: fix formatting issue * refactor: adjust docs * refactor: add changes after code review * refactor: add changes after code review * refactor: update CODEOWNERS filepull/81704/head
parent
bac4c7fb32
commit
967a650d2d
@ -0,0 +1,51 @@ |
||||
name: Crowdin Download Action |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
schedule: |
||||
- cron: "0 * * * *" |
||||
|
||||
jobs: |
||||
download-sources-from-crowdin: |
||||
runs-on: ubuntu-latest |
||||
|
||||
permissions: |
||||
contents: write # needed to commit changes into the PR |
||||
pull-requests: write # needed to update PR description, labels, etc |
||||
|
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
with: |
||||
ref: ${{ github.head_ref }} |
||||
|
||||
- name: Download sources |
||||
uses: crowdin/github-action@v1 |
||||
with: |
||||
upload_sources: false |
||||
upload_translations: false |
||||
download_sources: false |
||||
download_translations: true |
||||
localization_branch_name: i18n_crowdin_translations |
||||
create_pull_request: true |
||||
pull_request_title: 'I18n: Download translations from Crowdin' |
||||
pull_request_body: | |
||||
:robot: Automatic download of translations from Crowdin. |
||||
|
||||
Steps for merging: |
||||
1. A quick sanity check of the changes and approve. Things to look out for: |
||||
- No changes in the English file. The source of truth is in the main branch, NOT in Crowdin. |
||||
- Translations maybe be removed if the English phrase was removed, but there should not be many of these |
||||
- Anything else that looks 'funky'. Ask if you're not sure. |
||||
2. Approve & (Auto-)merge. :tada: |
||||
|
||||
If there's a conflict, close the pull request and **delete the branch**. A GH action will recreate the pull request. |
||||
Remember, the longer this pull request is open, the more likely it is that it'll get conflicts. |
||||
pull_request_labels: 'area/frontend, area/internationalization, no-changelog, no-backport' |
||||
pull_request_reviewers: 'grafana-frontend-platform' |
||||
pull_request_base_branch_name: 'main' |
||||
base_url: 'https://grafana.api.crowdin.com' |
||||
config: 'crowdin.yml' |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} |
||||
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} |
@ -1,67 +0,0 @@ |
||||
# When Crowdin creates a pull request from the crowdin-service-branch branch, |
||||
# run `yarn i18n:extract` and commit the changed grafana.json files back into the PR |
||||
# to reformat crowdin's changes to prevent conflicts with our CI checks. |
||||
|
||||
name: Fix Crowdin I18n files |
||||
|
||||
on: |
||||
pull_request: |
||||
paths: |
||||
- 'public/locales/*/grafana.json' |
||||
branches: |
||||
- main # Only run on pull requests *target* main (will be merged into main) |
||||
|
||||
jobs: |
||||
fix-files: |
||||
# Only run on pull requests *from* the crowdin-service-branch branch |
||||
if: github.head_ref == 'crowdin-service-branch' |
||||
|
||||
name: Fix files |
||||
runs-on: ubuntu-latest |
||||
|
||||
|
||||
permissions: |
||||
contents: write # needed to commit changes back into the PR |
||||
pull-requests: write # needed to update PR description |
||||
|
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
with: |
||||
ref: ${{ github.head_ref }} |
||||
|
||||
- uses: actions/setup-node@v4 |
||||
with: |
||||
node-version: 20.9.0 |
||||
cache: 'yarn' |
||||
|
||||
- name: Install dependencies |
||||
run: yarn install |
||||
|
||||
- name: Extract I18n files |
||||
run: yarn i18n:extract |
||||
|
||||
- name: Commit changes |
||||
uses: stefanzweifel/git-auto-commit-action@8756aa072ef5b4a080af5dc8fef36c5d586e521d # v5.0.0 |
||||
with: |
||||
commit_message: "Github Action: Auto-fix i18n files" |
||||
file_pattern: public/locales/*/grafana.json |
||||
|
||||
- name: Update PR description |
||||
uses: devindford/Append_PR_Comment@32dd2619cd96ac8da9907c416c992fe265233ca8 # v1.1.3 |
||||
if: ${{ ! contains(github.event.pull_request.body, 'Steps for merging') }} |
||||
with: |
||||
repo-token: ${{ secrets.GITHUB_TOKEN }} |
||||
body-update-action: prefix |
||||
body-template: | |
||||
:robot: Automatic sync of translations from Crowdin. |
||||
|
||||
Steps for merging: |
||||
1. Wait for the "Github Action: Auto-fix i18n files" commit that may be required for CI to pass. |
||||
2. A quick sanity check of the changes and approve. Things to look out for: |
||||
- No changes to the English strings. The source of truth is already in the main branch, NOT Crowdin. |
||||
- Translations maybe be removed if the English phrase was removed, but there should not be many of these |
||||
- Anything else that looks 'funky'. Ask if you're not sure. |
||||
3. Approve & (Auto-)merge. :tada: |
||||
|
||||
If there's a conflict, close the pull request and **delete the branch**. Crowdin will recreate the pull request eventually. |
||||
Remember, the longer this pull request is open, the more likely it is that it'll get conflicts. |
@ -0,0 +1,29 @@ |
||||
name: Crowdin Upload Action |
||||
|
||||
on: |
||||
push: |
||||
paths: |
||||
- 'public/locales/en-US/grafana.json' |
||||
branches: |
||||
- main |
||||
|
||||
jobs: |
||||
upload-sources-to-crowdin: |
||||
runs-on: ubuntu-latest |
||||
|
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v4 |
||||
|
||||
- name: Upload sources |
||||
uses: crowdin/github-action@v1 |
||||
with: |
||||
upload_sources: true |
||||
upload_translations: false |
||||
download_translations: false |
||||
create_pull_request: false |
||||
base_url: 'https://grafana.api.crowdin.com' |
||||
config: 'crowdin.yml' |
||||
env: |
||||
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} |
||||
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} |
Loading…
Reference in new issue