Crowdin pull and merge #78
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Crowdin pull and merge | |
| on: | |
| schedule: | |
| - cron: "0 */12 * * *" # every 12 hours | |
| workflow_dispatch: | |
| jobs: | |
| pull: | |
| name: Pull translations from Crowdin | |
| permissions: | |
| contents: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout dev | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: dev | |
| fetch-depth: 0 | |
| clean: true | |
| - name: Pull strings from Crowdin | |
| uses: crowdin/github-action@v2 | |
| with: | |
| config: crowdin.yml | |
| upload_sources: false | |
| download_translations: true | |
| skip_ref_checkout: true | |
| localization_branch_name: crowdin | |
| create_pull_request: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} | |
| CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} | |
| - name: Push crowdin branch | |
| run: | | |
| git checkout -B crowdin | |
| git push --force origin crowdin | |
| merge: | |
| name: Squash merge Crowdin into Dev | |
| if: github.event_name == 'workflow_dispatch' | |
| needs: pull | |
| permissions: | |
| contents: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Step 1: Checkout crowdin branch to run checks on it | |
| - name: Checkout crowdin branch | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: crowdin | |
| fetch-depth: 0 | |
| clean: true | |
| # Step 2: Compile Android app to check string resources | |
| - name: "Setup Java" | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: "temurin" | |
| java-version: "18" | |
| - name: Compile Android app to check resources | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| chmod +x ./gradlew | |
| ./gradlew --no-daemon clean :play-services-core:assembleDefaultDebug | |
| # Step 3: Checkout dev branch to prepare for merging | |
| - name: Checkout dev branch for merge | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: dev | |
| fetch-depth: 0 | |
| clean: true | |
| # Step 4: Fetch the latest crowdin branch (already checked) | |
| - name: Fetch crowdin branch | |
| run: git fetch origin crowdin | |
| # Step 5: Squash merge crowdin into dev | |
| - name: Squash merge crowdin into dev | |
| run: | | |
| git config --local user.name "Crowdin Bot" | |
| git config --local user.email "support+bot@crowdin.com" | |
| git merge --squash origin/crowdin | |
| git commit --allow-empty -m "chore: Update translations from Crowdin" | |
| git push origin dev |