virt-manager/.github/workflows/translations.yml

59 lines
1.7 KiB
YAML

name: Translations
on:
schedule:
# Implicitly runs on default branch
# every two days at 6:00 UTC
- cron: '0 6 */2 * *'
jobs:
# This job will run ./setup.py extract_messages on top of git main
# and force push that to the 'translations' branch. That branch will
# always have an up to date .pot file for use in weblate
update-translation-pot:
# Only run this if on the main 'virt-manager/virt-manager' repo, not forks
if: "contains(github.repository, 'virt-manager/virt-manager')"
runs-on: ubuntu-latest
container:
image: fedora:latest
steps:
- name: Install deps
run: |
dnf install -y python3-setuptools gettext git diffutils
- uses: actions/checkout@v2
with:
# This fetches full git history. We need that for proper
# branch updating
fetch-depth: 0
- name: Extract messages and push to translations branch
run: |
git config --global user.email "actions@github.com"
git config --global user.name "Github Actions"
git fetch --all
git rebase remotes/origin/translations
cp po/virt-manager.pot old.pot
./setup.py extract_messages
ec=0
diff -q -I 'POT-Creation-Date' old.pot po/virt-manager.pot || ec=$?
case "${ec}" in
0) ;;
1)
git commit po/virt-manager.pot \
--message "Refresh translation .pot template"
remote_repo="https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git"
git push "${remote_repo}" HEAD:translations
;;
*)
echo "diff failed with exit status ${ec}" >&2
exit 1
;;
esac