Skip to content

ci: add commitlint GitHub Actions #4440

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Conventional Commitlint
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure when our docs were updated last. Should this here just be exactly this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think CI is ambiguous.
So I use Conventional Commitlint.

Another workflow uses Validate Commits.
It might be good to update the example name.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah sorry, I do not care about the name 📦
I meant this part:

 - name: Install commitlint
        run: npm install -D @commitlint/cli @commitlint/config-conventional

Also there is not build step in the docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question.

At first, I try to use install command like yarn add -D @commitlint/cli @commitlint/config-conventional.
However, It failed due to conflict with local packages in this repository.
So I select build command instead of install.

Failed GitHub Actions
name: Conventional Commitlint

on:
  push:
  pull_request:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  commitlint:
    name: Commitlint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
        with:
          node-version: lts/*
          cache: yarn

      - name: Install commitlint
        run: yarn add -D @commitlint/cli @commitlint/config-conventional

      - name: Print versions
        run: |
          git --version
          node --version
          npm --version
          yarn --version
          yarn commitlint --version

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

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

Result

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uhm, thanks. The docs use npm, does it work if you try npm?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm can install dependencies, but npx commitlint command fails, either.

Failed GitHub Actions
name: Conventional Commitlint

on:
  push:
  pull_request:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  commitlint:
    name: Commitlint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
        with:
          node-version: lts/*
          cache: npm

      - name: Install commitlint
        run: npm install -D @commitlint/cli @commitlint/config-conventional

      - name: Print versions
        run: |
          git --version
          node --version
          npm --version
          yarn --version
          npx commitlint --version

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

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

Perhaps this is also related to the workspaces definition in package.json.


on:
push:
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
commitlint:
name: Commitlint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: lts/*
cache: yarn

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build packages
run: yarn build

- name: Print versions
run: |
git --version
node --version
npm --version
yarn --version
yarn commitlint --version

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

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