Skip to content

Commit

Permalink
fix(ci): add PR compliance checks
Browse files Browse the repository at this point in the history
HarryVasanth committed Nov 6, 2024
1 parent 23aec41 commit a50a5ab
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/ga-misc-check-compliance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: ๐Ÿ“‹ Check PR Compliance

on:
pull_request:
types:
[
opened,
edited,
synchronize,
reopened,
labeled,
unlabeled,
assigned,
unassigned,
]

jobs:
check-pr-compliance:
name: โœ… Check PR for Compliance
runs-on: ubuntu-latest

steps:
- name: ๐Ÿง Check out repository code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: ๐Ÿท๏ธ Show PR Labels and Assignees
run: |
echo "PR Labels: ${{ toJson(github.event.pull_request.labels) }}"
echo "PR Assignees: ${{ toJson(github.event.pull_request.assignees) }}"
- name: ๐Ÿ™‹ Verify PR Assignee
run: |
if [ "${{ toJson(github.event.pull_request.assignees) }}" == "[]" ]; then
echo "๐Ÿ‘ฎ This PR does not have any assignees. Please assign at least one assignee."
exit 1
fi
- name: ๐Ÿท๏ธ Verify PR Label
run: |
if [ "${{ toJson(github.event.pull_request.labels) }}" == "[]" ]; then
echo "๐Ÿ‘ฎ This PR does not have any labels. Please assign at least one label."
exit 1
fi
- name: ๐Ÿ“ Check Commit Messages
id: check_commits
run: |
#!/bin/bash
set -e
BASE_SHA=$(git merge-base ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }})
COMMITS=$(git log --pretty=format:"%s" $BASE_SHA..${{ github.event.pull_request.head.sha }})
INVALID_COMMITS=()
while IFS= read -r commit; do
if ! [[ $commit =~ ^(add|delete|update|fix|bump|security|refactor|style|test|docs|chore|perf|ci|build|revert)(\([a-z]+\))?:\ .+ ]]; then
INVALID_COMMITS+=("$commit")
fi
done <<< "$COMMITS"
if [ ${#INVALID_COMMITS[@]} -ne 0 ]; then
echo "๐Ÿ‘ฎ Warning: The following commits do not follow the 01-edu commit message convention:"
for commit in "${INVALID_COMMITS[@]}"; do
echo " - $commit"
done
echo " ๐Ÿ“ข Please consider updating your commit messages to follow the standard: https://github.com/01-edu/conventions/"
exit 1
else
echo "โœ… All commit messages follow the 01-edu convention."
fi
continue-on-error: true

0 comments on commit a50a5ab

Please sign in to comment.