summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
blob: 1414637015071deb6b64e53b74bd02013141f952 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
name: CI

on:
  push:
    branches: [master]

jobs:

  # This job will run ./setup.py extract_messages on top of git master
  # 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