The setup-python action is able to cache the dependencies and reuse this cache while the pyproject file has not changed. It is easy to setup, just the package manager used has to be declared in the cache settings.
78 lines
2.4 KiB
YAML
78 lines
2.4 KiB
YAML
name: Update crowdin sources
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
install-dependencies:
|
|
uses: ./.github/workflows/dependencies.yml
|
|
with:
|
|
node_version: '22.x'
|
|
with-front-dependencies-installation: true
|
|
with-build_mails: true
|
|
|
|
synchronize-with-crowdin:
|
|
needs: install-dependencies
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
# Backend i18n
|
|
- name: Install Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.13.3"
|
|
cache: "pip"
|
|
- name: Upgrade pip and setuptools
|
|
run: pip install --upgrade pip setuptools
|
|
- name: Install development dependencies
|
|
run: pip install --user .
|
|
working-directory: src/backend
|
|
- name: Restore the mail templates
|
|
uses: actions/cache@v4
|
|
id: mail-templates
|
|
with:
|
|
path: "src/backend/core/templates/mail"
|
|
key: mail-templates-${{ hashFiles('src/mail/mjml') }}
|
|
fail-on-cache-miss: true
|
|
- name: Install gettext
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y gettext pandoc
|
|
- name: generate pot files
|
|
working-directory: src/backend
|
|
run: |
|
|
DJANGO_CONFIGURATION=Build python manage.py makemessages -a --keep-pot
|
|
# frontend i18n
|
|
- name: Restore the frontend cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: "src/frontend/**/node_modules"
|
|
key: front-node_modules-${{ hashFiles('src/frontend/**/yarn.lock') }}
|
|
fail-on-cache-miss: true
|
|
- name: generate source translation file
|
|
working-directory: src/frontend
|
|
run: yarn i18n:extract
|
|
# crowdin workflow
|
|
- name: crowdin action
|
|
uses: crowdin/github-action@v2
|
|
with:
|
|
config: crowdin/config.yml
|
|
upload_sources: true
|
|
upload_translations: false
|
|
download_translations: false
|
|
create_pull_request: false
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# A numeric ID, found at https://crowdin.com/project/<projectName>/tools/api
|
|
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
|
|
|
# Visit https://crowdin.com/settings#api-key to create this token
|
|
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
|
|
|
|
CROWDIN_BASE_PATH: "../src/"
|