ci: automate crowdin prompt sync
This commit is contained in:
46
.github/workflows/crowdin-sync.yml
vendored
46
.github/workflows/crowdin-sync.yml
vendored
@@ -2,6 +2,8 @@ name: Crowdin Sync
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: "17 */6 * * *"
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
@@ -9,9 +11,15 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- "crowdin.yml"
|
- "crowdin.yml"
|
||||||
- "locales/zh-CN/*.json"
|
- "locales/zh-CN/*.json"
|
||||||
|
- "prompts/zh-CN/**/*.prompt"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
sync:
|
sync-current-branch:
|
||||||
|
if: github.event_name != 'schedule'
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -23,10 +31,46 @@ jobs:
|
|||||||
upload_sources: true
|
upload_sources: true
|
||||||
upload_translations: false
|
upload_translations: false
|
||||||
download_translations: true
|
download_translations: true
|
||||||
|
localization_branch_name: l10n_${{ github.ref_name }}
|
||||||
create_pull_request: true
|
create_pull_request: true
|
||||||
pull_request_title: "chore(i18n): sync Crowdin translations"
|
pull_request_title: "chore(i18n): sync Crowdin translations"
|
||||||
pull_request_body: "Automated translation sync from Crowdin."
|
pull_request_body: "Automated translation sync from Crowdin."
|
||||||
|
pull_request_base_branch_name: ${{ github.ref_name }}
|
||||||
commit_message: "chore(i18n): sync Crowdin translations"
|
commit_message: "chore(i18n): sync Crowdin translations"
|
||||||
env:
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
||||||
|
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
|
||||||
|
|
||||||
|
sync-scheduled-branches:
|
||||||
|
if: github.event_name == 'schedule'
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
base_branch:
|
||||||
|
- main
|
||||||
|
- r-dev
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ matrix.base_branch }}
|
||||||
|
- name: Sync scheduled translations with Crowdin
|
||||||
|
uses: crowdin/github-action@v2
|
||||||
|
with:
|
||||||
|
config: crowdin.yml
|
||||||
|
skip_ref_checkout: true
|
||||||
|
upload_sources: true
|
||||||
|
upload_translations: false
|
||||||
|
download_translations: true
|
||||||
|
localization_branch_name: l10n_${{ matrix.base_branch }}
|
||||||
|
create_pull_request: true
|
||||||
|
pull_request_title: "chore(i18n): sync Crowdin translations"
|
||||||
|
pull_request_body: "Automated translation sync from Crowdin."
|
||||||
|
pull_request_base_branch_name: ${{ matrix.base_branch }}
|
||||||
|
commit_message: "chore(i18n): sync Crowdin translations"
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
||||||
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
|
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
|
||||||
|
|||||||
6
.github/workflows/i18n-validate.yml
vendored
6
.github/workflows/i18n-validate.yml
vendored
@@ -4,16 +4,22 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- "locales/**/*.json"
|
- "locales/**/*.json"
|
||||||
|
- "prompts/**/*.prompt"
|
||||||
- "scripts/i18n_validate.py"
|
- "scripts/i18n_validate.py"
|
||||||
- "src/common/i18n/**/*.py"
|
- "src/common/i18n/**/*.py"
|
||||||
|
- "src/common/prompt_i18n.py"
|
||||||
|
- "src/prompt/prompt_manager.py"
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- r-dev
|
- r-dev
|
||||||
paths:
|
paths:
|
||||||
- "locales/**/*.json"
|
- "locales/**/*.json"
|
||||||
|
- "prompts/**/*.prompt"
|
||||||
- "scripts/i18n_validate.py"
|
- "scripts/i18n_validate.py"
|
||||||
- "src/common/i18n/**/*.py"
|
- "src/common/i18n/**/*.py"
|
||||||
|
- "src/common/prompt_i18n.py"
|
||||||
|
- "src/prompt/prompt_manager.py"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate:
|
validate:
|
||||||
|
|||||||
Reference in New Issue
Block a user