Update README.md #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Lint commit | |
on: | |
push: | |
pull_request: | |
merge_group: | |
# Don't grant any access by default | |
permissions: {} | |
jobs: | |
commitlint: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Check if the pull request contains a single commit | |
if: github.event_name == 'pull_request' | |
run: | | |
commit_count=${{ github.event.pull_request.commits }} | |
if [ -z ${commit_count} ]; then | |
echo "[ERROR] commit_count is empty" | |
exit 1 | |
fi | |
if [[ ${commit_count} -ne 1 ]]; then | |
echo "[ERROR] This pull request contains ${commit_count} commits. Squash these commits into a single commit." | |
exit 1 | |
else | |
echo "This pull request contains ${commit_count} commit." | |
fi | |
- name: Set commit metadata | |
run: | | |
SET_INTERVAL_VALUES="true" | |
if [[ ${{ github.event_name }} == 'push' ]] || [[ ${{ github.event_name }} == 'merge_group' ]]; then | |
echo "Using default commit metadata" | |
SET_INTERVAL_VALUES="false" | |
elif [[ ${{ github.event_name }} == 'pull_request' ]]; then | |
FROM_INTERVAL_COMMITLINT=${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} | |
TO_INTERVAL_COMMITLINT=${{ github.event.pull_request.head.sha }} | |
else | |
echo "[ERROR] Event not supported when setting commit metadata" | |
exit 1 | |
fi | |
if [ "${SET_INTERVAL_VALUES}" == "true" ]; then | |
if [ -z "${FROM_INTERVAL_COMMITLINT}" ]; then | |
echo "[ERROR] FROM_INTERVAL_COMMITLINT is empty" | |
exit 1 | |
fi | |
if [ -z "${TO_INTERVAL_COMMITLINT}" ]; then | |
echo "[ERROR] TO_INTERVAL_COMMITLINT is empty" | |
exit 1 | |
fi | |
{ | |
echo "FROM_INTERVAL_COMMITLINT=${FROM_INTERVAL_COMMITLINT}" | |
echo "TO_INTERVAL_COMMITLINT=${TO_INTERVAL_COMMITLINT}" | |
} >> "${GITHUB_ENV}" | |
else | |
echo "Skip updating GITHUB_ENV. SET_INTERVAL_VALUES: ${SET_INTERVAL_VALUES}" | |
fi | |
- name: Validate commits | |
run: | | |
make lint-commits | |
... |