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