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<>$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 }} ```