name: Check Conventional Commit on: push: branches: - master pull_request: branches: - master jobs: check-commit-message: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Check Conventional Commit run: | # Define the conventional commit types with emojis TYPES=("๐ŸŽ‰ feat" "๐Ÿž fix" "๐Ÿ“š docs" "๐Ÿ’… style" "๐Ÿ”จ refactor" "โšก๏ธ perf" "๐Ÿงช test" "๐Ÿ› ๏ธ build" "๐Ÿค– ci" "๐Ÿงน chore" "โช๏ธ revert") # Extract the commit type and emoji from the commit message COMMIT_MSG=$(git log --format=%B -n 1) for type in "${TYPES[@]}"; do type_emoji=${type} type=${type_emoji#* } emoji=${type_emoji% *} if [[ $COMMIT_MSG == $emoji* ]]; then echo "Commit message is a conventional commit" exit 0 fi done # If we reach here, the commit message is not a conventional commit echo "Commit message is not a conventional commit" exit 1