ci: automate crowdin prompt sync

This commit is contained in:
春河晴
2026-03-13 00:16:32 +09:00
parent c9bfedddd2
commit d14eb48051
2 changed files with 51 additions and 1 deletions

View File

@@ -2,6 +2,8 @@ name: Crowdin Sync
on:
workflow_dispatch:
schedule:
- cron: "17 */6 * * *"
push:
branches:
- main
@@ -9,9 +11,15 @@ on:
paths:
- "crowdin.yml"
- "locales/zh-CN/*.json"
- "prompts/zh-CN/**/*.prompt"
permissions:
contents: write
pull-requests: write
jobs:
sync:
sync-current-branch:
if: github.event_name != 'schedule'
runs-on: ubuntu-24.04
steps:
@@ -23,10 +31,46 @@ jobs:
upload_sources: true
upload_translations: false
download_translations: true
localization_branch_name: l10n_${{ github.ref_name }}
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: ${{ github.ref_name }}
commit_message: "chore(i18n): sync Crowdin translations"
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_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -4,16 +4,22 @@ on:
pull_request:
paths:
- "locales/**/*.json"
- "prompts/**/*.prompt"
- "scripts/i18n_validate.py"
- "src/common/i18n/**/*.py"
- "src/common/prompt_i18n.py"
- "src/prompt/prompt_manager.py"
push:
branches:
- main
- r-dev
paths:
- "locales/**/*.json"
- "prompts/**/*.prompt"
- "scripts/i18n_validate.py"
- "src/common/i18n/**/*.py"
- "src/common/prompt_i18n.py"
- "src/prompt/prompt_manager.py"
jobs:
validate: