[ptftest] Add p4_dash_utils #964
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pre-commit-check | |
on: | |
pull_request: | |
jobs: | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- run: pip install pre-commit>=3.2.1 | |
- run: pre-commit --version | |
- run: git --version | |
- run: git status | |
- run: pre-commit install | |
- run: git fetch origin | |
- run: | | |
set -x | |
set +e | |
OUTPUT=$(pre-commit run --color never --from-ref HEAD^ --to-ref HEAD 2>&1) | |
EXIT_CODE=$? | |
echo $OUTPUT | |
echo $EXIT_CODE | |
echo "pre_commit<<EOF" >> $GITHUB_ENV | |
echo $OUTPUT >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
echo "exit_code=$EXIT_CODE" >> $GITHUB_ENV | |
continue-on-error: true | |
- name: Prepare comment | |
if: ${{ env.exit_code != 0 }} | |
env: | |
PRE_COMMIT: ${{ env.pre_commit }} | |
EXIT_CODE: ${{ env.exit_code }} | |
run: | | |
echo "$PRE_COMMIT" | |
echo $EXIT_CODE | |
if [[ `echo "$PRE_COMMIT" | wc -l` -gt 20 ]]; then | |
PRE_COMMIT=`echo "$PRE_COMMIT" | head -n 20` | |
PRE_COMMIT="$PRE_COMMIT\n...\n[truncated extra lines, please run pre-commit locally to view full check results]" | |
PRE_COMMIT=`printf "$PRE_COMMIT"` | |
fi | |
br='<br/>' | |
PR_MESSAGE="The [pre-commit](http://pre-commit.com/) check detected issues in the files touched by this pull request. | |
Detailed pre-commit check results: | |
<samp>$PRE_COMMIT</samp> | |
To run the pre-commit checks locally, you can follow below steps: | |
1. Ensure that default python is python3. | |
2. Ensure that the \`pre-commit\` package is installed: | |
\`\`\`sudo pip install pre-commit\`\`\` | |
3. Go to repository root folder | |
4. Install the pre-commit hooks: | |
\`\`\`pre-commit install\`\`\` | |
5. Use pre-commit to check staged file: | |
\`\`\`pre-commit\`\`\` | |
6. Alternatively, you can check committed files using: | |
\`\`\`pre-commit run --from-ref <commit_id> --to-ref <commit_id>\`\`\` | |
or | |
\`\`\`pre-commit run --all-files\`\`\`" | |
results=`echo "$PR_MESSAGE" | while read line; do echo $line$br; done | tr -d '\n'` | |
echo "pre_commit_mod=$results" >> $GITHUB_ENV | |
echo "exit_code=$EXIT_CODE" >> $GITHUB_ENV | |
- name: Add comment to PR | |
if: ${{ env.exit_code != 0 }} | |
env: | |
URL: ${{ github.event.pull_request.comments_url }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
PRE_COMMIT: ${{ env.pre_commit_mod }} | |
run: | | |
curl \ | |
-X POST \ | |
$URL \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: token $GITHUB_TOKEN" \ | |
--data "{ \"body\": \"$PRE_COMMIT\" }" | |
- name: pre-commit exit code | |
env: | |
EXIT_CODE: ${{ env.exit_code }} | |
run: exit $EXIT_CODE |