Files
mai-bot/.github/workflows/crowdin-sync.yml

78 lines
2.4 KiB
YAML

name: Crowdin Sync
on:
workflow_dispatch:
schedule:
- cron: "17 */6 * * *"
push:
branches:
- main
- r-dev
paths:
- "crowdin.yml"
- "locales/zh-CN/*.json"
- "prompts/zh-CN/**/*.prompt"
- "dashboard/src/i18n/locales/zh.json"
permissions:
contents: write
pull-requests: write
jobs:
sync-current-branch:
if: github.event_name != 'schedule'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Sync translations with Crowdin
uses: crowdin/github-action@v2
with:
config: crowdin.yml
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 }}