name: Fetch Crowdin Translations on: workflow_dispatch: schedule: - cron: "0 0 * * 1" jobs: update-crowdin: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 token: ${{ secrets.GH_TOKEN_FOR_CROWDIN_SYNC }} - name: Install Qt ≥ 6.8 uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005 with: aqtversion: "==3.1.*" version: "6.8.3" host: "linux" target: "desktop" arch: "linux_gcc_64" - name: Setup Python & dependencies uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 with: python-version: "3.13" - name: Install Python packages run: | python3 -m pip install --upgrade pip pip install pyside6 - name: Gather translations from crowdin run: | ./updatecrowdin.py build while ./updatecrowdin.py build-status | grep -q "status: inProgress"; do sleep 10; done ./updatecrowdin.py download ./updatecrowdin.py install working-directory: ./src/Tools env: CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }} CROWDIN_PROJECT_ID: freecad - name: Commit changes run: | git config --global user.name "freecad-gh-actions-translation-bot" git config --global user.email "freecad-gh-actions-translation-bot@github.com" git add src git commit -m "Update translations from Crowdin" || echo "No changes to commit" - name: Push changes to a new branch run: | git branch update-crowdin-translations git push origin update-crowdin-translations --force - name: Create Pull Request uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 with: branch: update-crowdin-translations title: "Update translations from Crowdin" body: "Automatic Crowdin update." token: ${{ secrets.GH_TOKEN_FOR_CROWDIN_SYNC }} delete-branch: true add-paths: | src