feat: module shell #112
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: Repo | |
on: | |
# Triggers the workflow on push or pull request events but only for the "main" branch | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
commitlint: | |
name: Conventional Commits | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Print versions | |
run: | | |
git --version | |
node --version | |
npm --version | |
npx commitlint --version | |
- name: Install commitlint | |
run: | | |
#npm install conventional-changelog-conventionalcommits | |
#npm install commitlint@latest | |
npm install @commitlint/{cli,config-conventional} | |
npx commitlint --version | |
- name: Validate current commit (last commit) with commitlint | |
if: github.event_name == 'push' | |
run: npx commitlint --last --verbose | |
- name: Validate PR commits with commitlint | |
id: commitlint | |
if: github.event_name == 'pull_request' | |
run: | | |
npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose | |
log=$(npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose) | |
if echo $log | grep -q 'message must be signed off'; then | |
echo "nosignoff=true" >> $GITHUB_OUTPUT | |
fi | |
- name: Comment on missing commit sign-off | |
if: ${{ steps.commitlint.outputs.nosignoff == 'true' }} | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: '❗ Please sign-off your commits ❗' | |
}) |