run_gitlint.yaml 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. name: Run gitlint
  2. on: [pull_request]
  3. jobs:
  4. run_gitlint:
  5. runs-on: ubuntu-20.04
  6. steps:
  7. - name: Checkout source code
  8. uses: actions/checkout@master
  9. - name: Install gitlint
  10. run: |
  11. sudo apt-get update
  12. sudo apt install gitlint
  13. - name: Run gitlint
  14. run: |
  15. pr_number=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')
  16. messages=$(curl "https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/${pr_number}/commits")
  17. len=$(echo $messages | jq length)
  18. result=true
  19. for i in $( seq 0 $(($len - 1)) ); do
  20. message=$(echo $messages | jq -r .[$i].commit.message)
  21. echo commit message: $message
  22. status=0
  23. echo $message | gitlint -C ./.github/workflows/.gitlint || status=$?
  24. if [ $status -ne 0 ]; then
  25. result=false
  26. fi
  27. done
  28. if ! ${result} ; then
  29. echo "Some of the commit messages are not structured as The Conventional Commits specification. Please check CONTRIBUTING.md for our process on PR."
  30. exit 1
  31. fi
  32. echo "success"