Translations #90
This file contains 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: Translations | |
on: | |
schedule: | |
- cron: '0 0 * * *' # Runs every day at midnight | |
workflow_dispatch: # Allows to manually trigger the workflow | |
jobs: | |
update-and-pr: | |
runs-on: ubuntu-22.04 | |
permissions: | |
contents: write | |
pull-requests: write | |
env: | |
base-branch: main # The base branch for the PR | |
name: Update text | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Generate unique branch name | |
id: generate_branch | |
run: | | |
export BRANCH_NAME="auto-update-trans-text-$(date +'%Y%m%d-%H%M%S')" | |
echo "branch-name=$BRANCH_NAME" >> $GITHUB_ENV | |
- name: Bootstrap | |
uses: ./.github/actions/bootstrap | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
python -m poetry install | |
pip install sphinx==7.3.7 | |
- name: Install pandoc | |
uses: nikeee/setup-pandoc@v1 | |
- name: Update text and translations for all locales | |
run: | | |
cd framework/docs | |
make update-text | |
for langDir in locales/*; do | |
if [ -d "$langDir" ]; then | |
lang=$(basename $langDir) | |
echo "Updating language $lang" | |
make update-lang lang=$lang | |
fi | |
done | |
- name: Commit changes | |
run: | | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
git add framework/docs/locales | |
git commit -m "Update text and language files" | |
continue-on-error: true | |
- name: Calculate diff # Even without doc changes the update-lang command will generate 228 additions and 60 deletions, so we only want to open a PR when there is more | |
id: calculate_diff | |
run: | | |
additions=$(git diff --numstat HEAD^1 | awk '{s+=$1} END {print s}') | |
deletions=$(git diff --numstat HEAD^1 | awk '{s+=$2} END {print s}') | |
echo "Additions: $additions" | |
echo "Deletions: $deletions" | |
echo "additions=$additions" >> $GITHUB_OUTPUT | |
echo "deletions=$deletions" >> $GITHUB_OUTPUT | |
- name: Push changes | |
if: steps.calculate_diff.outputs.additions > 228 && steps.calculate_diff.outputs.deletions > 60 | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branch: ${{ env.branch-name }} | |
- name: Create Pull Request | |
if: steps.calculate_diff.outputs.additions > 228 && steps.calculate_diff.outputs.deletions > 60 | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
branch: ${{ env.branch-name }} | |
base: ${{ env.base-branch }} | |
delete-branch: true | |
title: 'docs(framework:skip) Update source texts for translations (automated)' | |
body: 'This PR is auto-generated to update text and language files.' | |
draft: false |