]> git.ipfire.org Git - thirdparty/git.git/blame - .github/workflows/l10n.yml
Merge branch 'jw/doc-show-untracked-files-fix'
[thirdparty/git.git] / .github / workflows / l10n.yml
CommitLineData
a788d319
JX
1name: git-l10n
2
3on: [push, pull_request_target]
4
eb5b03a9
TB
5# Avoid unnecessary builds. Unlike the main CI jobs, these are not
6# ci-configurable (but could be).
7concurrency:
8 group: ${{ github.workflow }}-${{ github.ref }}
9 cancel-in-progress: true
10
a788d319
JX
11jobs:
12 git-po-helper:
13 if: >-
14 endsWith(github.repository, '/git-po') ||
15 contains(github.head_ref, 'l10n') ||
16 contains(github.ref, 'l10n')
17 runs-on: ubuntu-latest
18 permissions:
19 pull-requests: write
20 steps:
21 - name: Setup base and head objects
22 id: setup-tips
23 run: |
24 if test "${{ github.event_name }}" = "pull_request_target"
25 then
26 base=${{ github.event.pull_request.base.sha }}
27 head=${{ github.event.pull_request.head.sha }}
28 else
29 base=${{ github.event.before }}
30 head=${{ github.event.after }}
31 fi
f115c96e
ÆAB
32 echo base=$base >>$GITHUB_OUTPUT
33 echo head=$head >>$GITHUB_OUTPUT
a788d319
JX
34 - name: Run partial clone
35 run: |
36 git -c init.defaultBranch=master init --bare .
37 git remote add \
38 --mirror=fetch \
39 origin \
40 https://github.com/${{ github.repository }}
41 # Fetch tips that may be unreachable from github.ref:
42 # - For a forced push, "$base" may be unreachable.
43 # - For a "pull_request_target" event, "$head" may be unreachable.
44 args=
45 for commit in \
46 ${{ steps.setup-tips.outputs.base }} \
47 ${{ steps.setup-tips.outputs.head }}
48 do
49 case $commit in
50 *[^0]*)
51 args="$args $commit"
52 ;;
53 *)
54 # Should not fetch ZERO-OID.
55 ;;
56 esac
57 done
58 git -c protocol.version=2 fetch \
59 --progress \
60 --no-tags \
61 --no-write-fetch-head \
62 --filter=blob:none \
63 origin \
64 ${{ github.ref }} \
65 $args
6032aee6 66 - uses: actions/setup-go@v5
a788d319
JX
67 with:
68 go-version: '>=1.16'
1bb7fcbf 69 cache: false
a788d319
JX
70 - name: Install git-po-helper
71 run: go install github.com/git-l10n/git-po-helper@main
72 - name: Install other dependencies
73 run: |
74 sudo apt-get update -q &&
75 sudo apt-get install -q -y gettext
76 - name: Run git-po-helper
77 id: check-commits
78 run: |
79 exit_code=0
80 git-po-helper check-commits \
81 --github-action-event="${{ github.event_name }}" -- \
82 ${{ steps.setup-tips.outputs.base }}..${{ steps.setup-tips.outputs.head }} \
83 >git-po-helper.out 2>&1 || exit_code=$?
84 if test $exit_code -ne 0 || grep -q WARNING git-po-helper.out
85 then
86 # Remove ANSI colors which are proper for console logs but not
87 # proper for PR comment.
88 echo "COMMENT_BODY<<EOF" >>$GITHUB_ENV
89 perl -pe 's/\e\[[0-9;]*m//g; s/\bEOF$//g' git-po-helper.out >>$GITHUB_ENV
90 echo "EOF" >>$GITHUB_ENV
91 fi
92 cat git-po-helper.out
93 exit $exit_code
94 - name: Create comment in pull request for report
6032aee6 95 uses: mshick/add-pr-comment@v2
a788d319
JX
96 if: >-
97 always() &&
98 github.event_name == 'pull_request_target' &&
99 env.COMMENT_BODY != ''
100 with:
101 repo-token: ${{ secrets.GITHUB_TOKEN }}
a788d319
JX
102 message: >
103 ${{ steps.check-commits.outcome == 'failure' && 'Errors and warnings' || 'Warnings' }}
104 found by [git-po-helper](https://github.com/git-l10n/git-po-helper#readme) in workflow
105 [#${{ github.run_number }}](${{ env.GITHUB_SERVER_URL }}/${{ github.repository }}/actions/runs/${{ github.run_id }}):
106
107 ```
108
109 ${{ env.COMMENT_BODY }}
110
111 ```