@@ -45,45 +45,47 @@ jobs:
4545 VIOLATIONS=""
4646
4747 # Check each commit subject
48- while IFS= read -r COMMIT; do
49- COMMIT_HASH=$(echo "$COMMIT" | awk '{print $1}')
50- COMMIT_SUBJECT=$(echo "$COMMIT" | cut -d' ' -f2-)
51- COMMIT_VIOLATIONS=""
48+ if [[ -n "$COMMITS" ]]; then
49+ while IFS= read -r COMMIT; do
50+ COMMIT_HASH=$(echo "$COMMIT" | awk '{print $1}')
51+ COMMIT_SUBJECT=$(echo "$COMMIT" | cut -d' ' -f2-)
52+ COMMIT_VIOLATIONS=""
53+
54+ if [[ "$COMMIT_SUBJECT" =~ ^revert ]]; then
55+ continue
56+ fi
57+
58+ if ! [[ "$COMMIT_SUBJECT" =~ $CONVENTIONAL_REGEX ]]; then
59+ COMMIT_VIOLATIONS+=":x: does not follow Conventional Commits guidelines\n"
60+ fi
5261
53- if [[ "$COMMIT_SUBJECT" =~ ^revert ]]; then
54- continue
55- fi
62+ if [[ ! "$COMMIT_SUBJECT" =~ ^chore(\(deps\):|:[[:space:]]bump) ]] && [[ ${#COMMIT_SUBJECT} -gt 70 ]]; then
63+ COMMIT_VIOLATIONS+=":x: exceeds 70 characters\n"
64+ fi
5665
57- if ! [[ "$COMMIT_SUBJECT" =~ $CONVENTIONAL_REGEX ]]; then
58- COMMIT_VIOLATIONS+=":x: does not follow Conventional Commits guidelines\n"
59- fi
60-
61- if [[ ! "$COMMIT_SUBJECT" =~ ^chore(\(deps\):|:[[:space:]]bump) ]] && [[ ${#COMMIT_SUBJECT} -gt 70 ]]; then
62- COMMIT_VIOLATIONS+=":x: exceeds 70 characters\n"
63- fi
64-
65- REPO_NAME="${{ github.repository }}"
66- if [[ "$REPO_NAME" =~ ^(.*/)?(gdc-nas|gdc-ui|gooddata-ui-sdk|gdc-panther)$ ]]; then
67- if [[ ! "$COMMIT_SUBJECT" =~ ^chore.*:[[:space:]][Uu]pdate ]]; then
68- TRAILERS=$(git show -s --format=%B "$COMMIT_HASH" | git interpret-trailers --parse)
69- if ! echo "$TRAILERS" | grep -iqE '^risk:\s*(nonprod|low|high)'; then
70- COMMIT_VIOLATIONS+=":x: does not contain a valid risk trailer\n"
66+ REPO_NAME="${{ github.repository }}"
67+ if [[ "$REPO_NAME" =~ ^(.*/)?(gdc-nas|gdc-ui|gooddata-ui-sdk|gdc-panther)$ ]]; then
68+ if [[ ! "$COMMIT_SUBJECT" =~ ^chore.*:[[:space:]][Uu]pdate ]]; then
69+ TRAILERS=$(git show -s --format=%B "$COMMIT_HASH" | git interpret-trailers --parse)
70+ if ! echo "$TRAILERS" | grep -iqE '^risk:\s*(nonprod|low|high)'; then
71+ COMMIT_VIOLATIONS+=":x: does not contain a valid risk trailer\n"
72+ fi
7173 fi
7274 fi
73- fi
74-
75- if [[ -n "$ COMMIT_VIOLATIONS" ]]; then
76- VIOLATIONS+="\`$COMMIT_HASH $COMMIT_SUBJECT\`\n$COMMIT_VIOLATIONS\n"
77- fi
78- done <<< "$COMMITS"
75+
76+ if [[ -n "$COMMIT_VIOLATIONS" ]]; then
77+ VIOLATIONS+="\`$COMMIT_HASH $COMMIT_SUBJECT\`\n$ COMMIT_VIOLATIONS\n"
78+ fi
79+ done <<< "$COMMITS"
80+ fi
7981
8082 # Output violations if any
8183 if [[ -n "$VIOLATIONS" ]]; then
82- echo -e "$VIOLATIONS"
83- echo "## Commit Lint Results" >> $GITHUB_STEP_SUMMARY
84- echo "### Violations" >> $GITHUB_STEP_SUMMARY
85- echo -e "$VIOLATIONS" >> $GITHUB_STEP_SUMMARY
86- exit 1
84+ echo -e "$VIOLATIONS"
85+ echo "## Commit Lint Results" >> $GITHUB_STEP_SUMMARY
86+ echo "### Violations" >> $GITHUB_STEP_SUMMARY
87+ echo -e "$VIOLATIONS" >> $GITHUB_STEP_SUMMARY
88+ exit 1
8789 fi
8890
8991 echo "All commit messages follow Conventional Commits guidelines."
0 commit comments