name: Commitlint

on: [push, pull_request]

permissions:
  contents: read

jobs:
  commitlint:
    name: Run commitlint scanning
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [24.x]

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Configure Corepack
        run: corepack enable
  
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: yarn

      - name: Install commitlint
        run: |
          yarn add conventional-changelog-conventionalcommits
          yarn add commitlint@latest

      - name: Validate current commit (last commit) with commitlint
        if: github.event_name == 'push'
        run: yarn dlx commitlint --last --verbose

      - name: Validate PR commits with commitlint
        if: github.event_name == 'pull_request'
        run: yarn dlx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
