🔨 refactor(workflows): enhanced

This commit is contained in:
Eshan Roy (Eshanized)
2024-06-16 02:27:33 +05:30
parent a012b70d86
commit dc3f938620

View File

@@ -3,38 +3,50 @@ name: Conventional Commit Checker
on: on:
push: push:
branches: branches:
- main
- master - master
- development pull_request:
branches:
- master
jobs: jobs:
conventional-commit-checker: conventional-commit-checker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Get latest commit message
run: |
LATEST_COMMIT_MESSAGE=$(git log -1 --format=%s)
echo "LATEST_COMMIT_MESSAGE=$LATEST_COMMIT_MESSAGE" >> $GITHUB_ENV
- name: Check conventional commit message - name: Check conventional commit message
run: | run: |
conventional_types=("build" "chore" "ci" "docs" "feat" "fix" "perf" "refactor" "revert" "style" "test") COMMIT_MSG=$(git log -1 --format=%s)
commit_emojis=("build"="🏗️" "chore"="🧹" "ci"="🤖" "docs"="📚" "feat"="🎉" "fix"="🔧" "perf"="⚡️" "refactor"="💡" "revert"="🚨" "style"="💄" "test"="🧪") 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 # Check if the type is valid
pattern="${commit_emojis[$type]} ${type}(:|)?" if [[ " ${TYPES[*]} " =~ " ${TYPE} " ]]; then
echo "Searching for pattern: $pattern" echo "Valid type: ${TYPE}"
if echo "$LATEST_COMMIT_MESSAGE" | grep -qE "^$pattern"; then else
echo "Conventional commit message found: $LATEST_COMMIT_MESSAGE" echo "Error: Invalid type. Please use one of the following: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert"
exit 0 exit 1
fi fi
done
echo "Error: Commit message is not conventional" # Check if the scope is provided
exit 1 if [ -z "$SCOPE" ]; then
shell: bash 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