diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aed582e..c74151d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -50,6 +50,14 @@ jobs: - name: install dependencies run: yarn install --immutable + - name: Validate current commit (last commit) with commitlint + if: github.event_name == 'push' + 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.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose + - name: lint run: yarn lint diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..ac98cf1 --- /dev/null +++ b/biome.json @@ -0,0 +1,3 @@ +{ + "extends": ["@ri7nz/biome"] +} diff --git a/commitlint.config.js b/commitlint.config.js index fb0419c..899b26e 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,9 +1,12 @@ module.exports = { - extends: ["squash-pr", "@commitlint/config-conventional"], - ignores: [ - // ignore lint commit when committed by release commit - (msg) => /^chore\((release|deps-dev|deps)?\):\s(@?\D+\d+.\d+.\d+|bump.*)\s(from|\[skip ci\]|to.*)?/g.test(msg), - // ignore lint commit when squash message - (msg) => /.*:.*\(#\d+\)/g.test(msg), - ], + extends: ["squash-pr", "@commitlint/config-conventional"], + ignores: [ + // ignore lint commit when committed by release commit + (msg) => + /^chore\((release|deps-dev|deps)?\):\s(@?\D+\d+.\d+.\d+|bump.*)\s(from|\[skip ci\]|to.*)?/g.test( + msg, + ), + // ignore lint commit when squash message + (msg) => /.*:.*\(#\d+\)/g.test(msg), + ], }; diff --git a/package.json b/package.json index cd10bc6..fb5decd 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,11 @@ "lint": "run-s \"lint:*\"", "lint:test": "echo \"No lint:test script specified\"" }, - "lint-staged": {}, + "lint-staged": { + "*": [ + "biome check --no-errors-on-unmatched --files-ignore-unknown=true --write" + ] + }, "dependencies": { "@anolilab/multi-semantic-release": "^1.1.3", "@biomejs/biome": "^1.9.2", diff --git a/packages/biome/.releaserc.json b/packages/biome/.releaserc.json index 3cba979..674a6be 100644 --- a/packages/biome/.releaserc.json +++ b/packages/biome/.releaserc.json @@ -1,3 +1,3 @@ { - "extends": "@ri7nz/semantic-release" + "extends": "@ri7nz/semantic-release" } diff --git a/packages/biome/index.json b/packages/biome/index.json index 18cfc3c..ac4ce52 100644 --- a/packages/biome/index.json +++ b/packages/biome/index.json @@ -1,33 +1,33 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.2/schema.json", - "vcs": { - "enabled": true, - "clientKind": "git", - "useIgnoreFile": true - }, - "files": { - "ignore": [], - "ignoreUnknown": true - }, - "formatter": { - "enabled": true, - "formatWithErrors": false, - "ignore": [], - "attributePosition": "auto", - "indentStyle": "tab", - "indentWidth": 2, - "lineWidth": 80, - "lineEnding": "lf" - }, - "json": { - "formatter": { - "enabled": true - } - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true - } - } + "$schema": "https://biomejs.dev/schemas/1.9.2/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignore": [], + "ignoreUnknown": true + }, + "formatter": { + "enabled": true, + "formatWithErrors": false, + "ignore": [], + "attributePosition": "auto", + "indentStyle": "tab", + "indentWidth": 2, + "lineWidth": 80, + "lineEnding": "lf" + }, + "json": { + "formatter": { + "enabled": true + } + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + } } diff --git a/packages/biome/package.json b/packages/biome/package.json index 6f877a6..3039659 100644 --- a/packages/biome/package.json +++ b/packages/biome/package.json @@ -1,13 +1,13 @@ { - "name": "@ri7nz/biome", - "description": "biomejs.dev configuration", - "version": "1.0.0", - "repository": "https://github.com/r17x/js", - "publishConfig": { - "access": "public" - }, - "type": "module", - "exports": { - ".": "./index.json" - } + "name": "@ri7nz/biome", + "description": "biomejs.dev configuration", + "version": "1.0.0", + "repository": "https://github.com/r17x/js", + "publishConfig": { + "access": "public" + }, + "type": "module", + "exports": { + ".": "./index.json" + } } diff --git a/packages/semantic-release/.releaserc.json b/packages/semantic-release/.releaserc.json index feb995b..6762b58 100644 --- a/packages/semantic-release/.releaserc.json +++ b/packages/semantic-release/.releaserc.json @@ -1,3 +1,3 @@ { - "extends": "./index.json" + "extends": "./index.json" } diff --git a/packages/semantic-release/index.json b/packages/semantic-release/index.json index 5720e6a..32f80c4 100644 --- a/packages/semantic-release/index.json +++ b/packages/semantic-release/index.json @@ -1,104 +1,104 @@ { - "branches": [ - "+([0-9])?(.{+([0-9]),x}).x", - "main", - "next", - "next-major", - { - "name": "beta", - "prerelease": true - }, - { - "name": "alpha", - "prerelease": true - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "conventionalcommits" - } - ], - [ - "@semantic-release/release-notes-generator", - { - "preset": "conventionalcommits", - "presetConfig": { - "types": [ - { - "type": "feat", - "section": "Features" - }, - { - "type": "feature", - "section": "Features" - }, - { - "type": "fix", - "section": "Bug Fixes" - }, - { - "type": "perf", - "section": "Performance Improvements" - }, - { - "type": "revert", - "section": "Reverts" - }, - { - "type": "docs", - "section": "Documentation", - "hidden": false - }, - { - "type": "style", - "section": "Styles", - "hidden": false - }, - { - "type": "chore", - "section": "Miscellaneous Chores", - "hidden": false - }, - { - "type": "refactor", - "section": "Code Refactoring", - "hidden": false - }, - { - "type": "test", - "section": "Tests", - "hidden": false - }, - { - "type": "build", - "section": "Build System", - "hidden": false - }, - { - "type": "ci", - "section": "Continuous Integration", - "hidden": false - } - ] - } - } - ], - "@semantic-release/changelog", - "@semantic-release/npm", - [ - "@semantic-release/git", - { - "message": "chore(release): ${nextRelease.gitTag} [skip ci]\n\n${nextRelease.notes}" - } - ], - [ - "@semantic-release/github", - { - "successComment": false, - "failComment": false - } - ] - ] + "branches": [ + "+([0-9])?(.{+([0-9]),x}).x", + "main", + "next", + "next-major", + { + "name": "beta", + "prerelease": true + }, + { + "name": "alpha", + "prerelease": true + } + ], + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "conventionalcommits" + } + ], + [ + "@semantic-release/release-notes-generator", + { + "preset": "conventionalcommits", + "presetConfig": { + "types": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "feature", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "perf", + "section": "Performance Improvements" + }, + { + "type": "revert", + "section": "Reverts" + }, + { + "type": "docs", + "section": "Documentation", + "hidden": false + }, + { + "type": "style", + "section": "Styles", + "hidden": false + }, + { + "type": "chore", + "section": "Miscellaneous Chores", + "hidden": false + }, + { + "type": "refactor", + "section": "Code Refactoring", + "hidden": false + }, + { + "type": "test", + "section": "Tests", + "hidden": false + }, + { + "type": "build", + "section": "Build System", + "hidden": false + }, + { + "type": "ci", + "section": "Continuous Integration", + "hidden": false + } + ] + } + } + ], + "@semantic-release/changelog", + "@semantic-release/npm", + [ + "@semantic-release/git", + { + "message": "chore(release): ${nextRelease.gitTag} [skip ci]\n\n${nextRelease.notes}" + } + ], + [ + "@semantic-release/github", + { + "successComment": false, + "failComment": false + } + ] + ] } diff --git a/packages/semantic-release/package.json b/packages/semantic-release/package.json index dbfeb79..788b3d7 100644 --- a/packages/semantic-release/package.json +++ b/packages/semantic-release/package.json @@ -1,25 +1,25 @@ { - "name": "@ri7nz/semantic-release", - "description": "semantic-release configuration", - "version": "1.0.0", - "repository": "https://github.com/r17x/js", - "publishConfig": { - "access": "public" - }, - "exports": { - ".": { - "require": "./index.json", - "import": "./index.json" - } - }, - "dependencies": { - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^13.0.0", - "@semantic-release/exec": "^6.0.3", - "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^10.3.4", - "@semantic-release/npm": "^12.0.1", - "@semantic-release/release-notes-generator": "^14.0.1", - "conventional-changelog-conventionalcommits": "^8.0.0" - } + "name": "@ri7nz/semantic-release", + "description": "semantic-release configuration", + "version": "1.0.0", + "repository": "https://github.com/r17x/js", + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "require": "./index.json", + "import": "./index.json" + } + }, + "dependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "^13.0.0", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^10.3.4", + "@semantic-release/npm": "^12.0.1", + "@semantic-release/release-notes-generator": "^14.0.1", + "conventional-changelog-conventionalcommits": "^8.0.0" + } }