Skip to content

Commit

Permalink
ci: add release, lint-staged, commitlint, commit hooks, move nyc to s…
Browse files Browse the repository at this point in the history
…eparate config file
  • Loading branch information
stas-nc committed Oct 23, 2024
1 parent e5bd2ba commit 4e1d540
Show file tree
Hide file tree
Showing 9 changed files with 12,303 additions and 5,684 deletions.
83 changes: 54 additions & 29 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,61 @@
name: CI

on:
push:
branches:
- master
tags-ignore:
- "**"
pull_request:
branches:
- "**"
push:
branches:
- master
tags-ignore:
- '**'
pull_request:
branches:
- '**'

jobs:
build:
name: Build
runs-on: ubuntu-latest
build:
name: Build
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
strategy:
matrix:
node-version: [16.x, 18.x, 20.x]

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm ci
- run: npm run lint
- run: npm test
- if: matrix.node-version == '20.x'
uses: actions/upload-artifact@v3
with:
name: Code coverage
path: coverage/
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- if: github.event_name == 'pull_request'
name: Lint commit messages
run: npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose
- if: matrix.node-version != '16.x' # eslint v9 requires node >= 18
run: npm run lint
- run: npm test
- run: npm run benchmark
- if: matrix.node-version == '20.x'
uses: actions/upload-artifact@v3
with:
name: Code coverage
path: coverage/
publish:
name: 'Publish'
needs: build
runs-on: ubuntu-latest
environment: npm_publish
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Publish new version
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
1 change: 1 addition & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx --no -- commitlint --edit $1
2 changes: 2 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
npx lint-staged
npm test
8 changes: 8 additions & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'use strict';

/**
* @type {import('@commitlint/types').UserConfig}
*/
module.exports = {
extends: ['@commitlint/config-conventional']
};
9 changes: 9 additions & 0 deletions lint-staged.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
'use strict';

/**
* @type {import('lint-staged').Config}
*/
module.exports = {
'*': 'prettier --ignore-unknown --write',
'*.js': 'npm run fix'
};
10 changes: 10 additions & 0 deletions nyc.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
'use strict';

module.exports = {
'check-coverage': true,
'per-file': true,
lines: 90,
statements: 80,
functions: 80,
branches: 70
};
Loading

0 comments on commit 4e1d540

Please sign in to comment.