From dc3f938620ab3c8a219778f33b72350b9e191fb8 Mon Sep 17 00:00:00 2001 From: "Eshan Roy (Eshanized)" <148610067+eshanized@users.noreply.github.com> Date: Sun, 16 Jun 2024 02:27:33 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20refactor(workflows):=20enhanced?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/commit.yml | 56 ++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml index 1689765..217bac2 100644 --- a/.github/workflows/commit.yml +++ b/.github/workflows/commit.yml @@ -3,38 +3,50 @@ name: Conventional Commit Checker on: push: branches: - - main - master - - development + pull_request: + branches: + - master jobs: conventional-commit-checker: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v2 - - - name: Get latest commit message - run: | - LATEST_COMMIT_MESSAGE=$(git log -1 --format=%s) - echo "LATEST_COMMIT_MESSAGE=$LATEST_COMMIT_MESSAGE" >> $GITHUB_ENV + uses: actions/checkout@v4 - name: Check conventional commit message run: | - conventional_types=("build" "chore" "ci" "docs" "feat" "fix" "perf" "refactor" "revert" "style" "test") - commit_emojis=("build"="๐Ÿ—๏ธ" "chore"="๐Ÿงน" "ci"="๐Ÿค–" "docs"="๐Ÿ“š" "feat"="๐ŸŽ‰" "fix"="๐Ÿ”ง" "perf"="โšก๏ธ" "refactor"="๐Ÿ’ก" "revert"="๐Ÿšจ" "style"="๐Ÿ’„" "test"="๐Ÿงช") + COMMIT_MSG=$(git log -1 --format=%s) + EMOJI=$(echo "$COMMIT_MSG" | cut -d' ' -f1) + TYPE=$(echo "$COMMIT_MSG" | cut -d'(' -f1 | cut -d' ' -f2-) + SCOPE=$(echo "$COMMIT_MSG" | cut -d'(' -f2 | cut -d')' -f1) + DESC=$(echo "$COMMIT_MSG" | cut -d']:' -f2-) - echo "LATEST_COMMIT_MESSAGE: $LATEST_COMMIT_MESSAGE" + # Check if the emoji is valid + if [[ " ${TYPES[*]} " =~ " ${EMOJI} " ]]; then + echo "Valid emoji: ${EMOJI}" + else + echo "Error: Invalid emoji. Please use one of the following: ๐ŸŽ‰, ๐Ÿž, ๐Ÿ“š, ๐Ÿ’…, ๐Ÿ”จ, โšก๏ธ, ๐Ÿงช, ๐Ÿ› ๏ธ, ๐Ÿค–, ๐Ÿงน, โช๏ธ" + exit 1 + fi - for type in "${conventional_types[@]}"; do - pattern="${commit_emojis[$type]} ${type}(:|)?" - echo "Searching for pattern: $pattern" - if echo "$LATEST_COMMIT_MESSAGE" | grep -qE "^$pattern"; then - echo "Conventional commit message found: $LATEST_COMMIT_MESSAGE" - exit 0 - fi - done + # Check if the type is valid + if [[ " ${TYPES[*]} " =~ " ${TYPE} " ]]; then + echo "Valid type: ${TYPE}" + else + echo "Error: Invalid type. Please use one of the following: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert" + exit 1 + fi - echo "Error: Commit message is not conventional" - exit 1 - shell: bash \ No newline at end of file + # Check if the scope is provided + if [ -z "$SCOPE" ]; then + echo "Error: Commit scope is required" + exit 1 + fi + + # Check if the description is provided + if [ -z "$DESC" ]; then + echo "Error: Commit description is required" + exit 1 + fi \ No newline at end of file