31 lines
1.0 KiB
YAML
31 lines
1.0 KiB
YAML
name: Conventional commits
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, edited]
|
|
|
|
jobs:
|
|
commits:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
fetch-depth: 0
|
|
- uses: https://github.com/actions/setup-node@v4
|
|
with:
|
|
node-version-file: .nvmrc
|
|
- run: npm ci --ignore-scripts
|
|
- name: Check PR title and commits
|
|
env:
|
|
PR_TITLE: ${{ github.event.pull_request.title }}
|
|
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
|
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
|
run: |
|
|
printf '%s\n' "$PR_TITLE" | npm exec --no -- commitlint --strict
|
|
if [[ "$PR_TITLE" =~ ^chore\(release\):\ [0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
npm exec --no -- commitlint --strict --from "$HEAD_SHA^" --to "$HEAD_SHA"
|
|
else
|
|
npm exec --no -- commitlint --strict --from "$BASE_SHA" --to "$HEAD_SHA"
|
|
fi
|