You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.6 KiB
105 lines
3.6 KiB
name: git-l10n |
|
|
|
on: [push, pull_request_target] |
|
|
|
jobs: |
|
git-po-helper: |
|
if: >- |
|
endsWith(github.repository, '/git-po') || |
|
contains(github.head_ref, 'l10n') || |
|
contains(github.ref, 'l10n') |
|
runs-on: ubuntu-latest |
|
permissions: |
|
pull-requests: write |
|
steps: |
|
- name: Setup base and head objects |
|
id: setup-tips |
|
run: | |
|
if test "${{ github.event_name }}" = "pull_request_target" |
|
then |
|
base=${{ github.event.pull_request.base.sha }} |
|
head=${{ github.event.pull_request.head.sha }} |
|
else |
|
base=${{ github.event.before }} |
|
head=${{ github.event.after }} |
|
fi |
|
echo "::set-output name=base::$base" |
|
echo "::set-output name=head::$head" |
|
- name: Run partial clone |
|
run: | |
|
git -c init.defaultBranch=master init --bare . |
|
git remote add \ |
|
--mirror=fetch \ |
|
origin \ |
|
https://github.com/${{ github.repository }} |
|
# Fetch tips that may be unreachable from github.ref: |
|
# - For a forced push, "$base" may be unreachable. |
|
# - For a "pull_request_target" event, "$head" may be unreachable. |
|
args= |
|
for commit in \ |
|
${{ steps.setup-tips.outputs.base }} \ |
|
${{ steps.setup-tips.outputs.head }} |
|
do |
|
case $commit in |
|
*[^0]*) |
|
args="$args $commit" |
|
;; |
|
*) |
|
# Should not fetch ZERO-OID. |
|
;; |
|
esac |
|
done |
|
git -c protocol.version=2 fetch \ |
|
--progress \ |
|
--no-tags \ |
|
--no-write-fetch-head \ |
|
--filter=blob:none \ |
|
origin \ |
|
${{ github.ref }} \ |
|
$args |
|
- uses: actions/setup-go@v2 |
|
with: |
|
go-version: '>=1.16' |
|
- name: Install git-po-helper |
|
run: go install github.com/git-l10n/git-po-helper@main |
|
- name: Install other dependencies |
|
run: | |
|
sudo apt-get update -q && |
|
sudo apt-get install -q -y gettext |
|
- name: Run git-po-helper |
|
id: check-commits |
|
run: | |
|
exit_code=0 |
|
git-po-helper check-commits \ |
|
--github-action-event="${{ github.event_name }}" -- \ |
|
${{ steps.setup-tips.outputs.base }}..${{ steps.setup-tips.outputs.head }} \ |
|
>git-po-helper.out 2>&1 || exit_code=$? |
|
if test $exit_code -ne 0 || grep -q WARNING git-po-helper.out |
|
then |
|
# Remove ANSI colors which are proper for console logs but not |
|
# proper for PR comment. |
|
echo "COMMENT_BODY<<EOF" >>$GITHUB_ENV |
|
perl -pe 's/\e\[[0-9;]*m//g; s/\bEOF$//g' git-po-helper.out >>$GITHUB_ENV |
|
echo "EOF" >>$GITHUB_ENV |
|
fi |
|
cat git-po-helper.out |
|
exit $exit_code |
|
- name: Create comment in pull request for report |
|
uses: mshick/add-pr-comment@v1 |
|
if: >- |
|
always() && |
|
github.event_name == 'pull_request_target' && |
|
env.COMMENT_BODY != '' |
|
with: |
|
repo-token: ${{ secrets.GITHUB_TOKEN }} |
|
repo-token-user-login: 'github-actions[bot]' |
|
message: > |
|
${{ steps.check-commits.outcome == 'failure' && 'Errors and warnings' || 'Warnings' }} |
|
found by [git-po-helper](https://github.com/git-l10n/git-po-helper#readme) in workflow |
|
[#${{ github.run_number }}](${{ env.GITHUB_SERVER_URL }}/${{ github.repository }}/actions/runs/${{ github.run_id }}): |
|
|
|
``` |
|
|
|
${{ env.COMMENT_BODY }} |
|
|
|
```
|
|
|