Skip to content

Commit 3a024ad

Browse files
authored
Merge pull request #19 from gooddata/jimi/lint
fix(commit-lint): succeed validation if there are no commits
2 parents fa6fd7f + 334f427 commit 3a024ad

1 file changed

Lines changed: 34 additions & 32 deletions

File tree

.github/workflows/commit-lint-shell.yaml

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)