GodMode9/.github/workflows/crowdin-commit.yml
2025-10-23 13:48:00 +02:00

78 lines
2.2 KiB
YAML

name: "Crowdin: Import translations"
on:
schedule:
- cron: "0 0 1,15 * *"
workflow_dispatch:
jobs:
import:
runs-on: ubuntu-latest
container: devkitpro/devkitarm
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive
- name: Setup environment
run: git config --global safe.directory '*'
- name: Install tools
run: |
apt-get update
apt-get install python3 python3-pip -y
python3 -m pip install --upgrade pip setuptools --break-system-packages
python3 -m pip install cryptography git+https://github.com/TuxSH/firmtool.git --break-system-packages
- uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Setup Crowdin CLI
run: |
npm i -g @crowdin/cli
- name: Pull from Crowdin
shell: bash
env:
CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }}
run: |
crowdin pull
set +e # continue on errors, we're using the exit code
for item in resources/languages/*.json; do
if ! [[ $item =~ (source|en).json$ ]]; then
# Check if the translation is over 30% translated
utils/transcheck.py resources/languages/source.json $item 30
if [[ $? -ne 0 ]]; then
rm $item
fi
fi
done
- name: Pull origin
run: git pull origin master --ff-only # Pull origin in case a commit has been done while updating
# This makes sure that the app actually builds before pushing to master
- name: Build test
run: |
make release -j$(nproc)
- name: Commit changes
continue-on-error: true
run: |
git config user.email "actions@github.com"
git config user.name "GitHub Actions"
git checkout master
git stage resources/languages
git commit -m "Automatic translation import"
- name: Push changes
uses: ad-m/github-push-action@master
with:
branch: master
github_token: ${{ secrets.GITHUB_TOKEN }}