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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 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@e797f83bcb11b83ae66e0230d6156d7c80228e7c 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@22a9089034f40e5a961c8808d113e2c98fb63676 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