@adfinis-sygroup/semantic-release-config 中文文档教程
@adfinis-sygroup/semantic-release-config
语义发布的可共享配置。
Features
目前,此配置只是对默认配置稍作修改:
- Add @semantic-release/git plugin to publish updated
package.json
andCHANGELOG.md
to repository after deployment
Installation
安装 npm 包
yarn add --dev @adfinis-sygroup/semantic-release-config
并将以下内容添加到 extends 属性。 io/semantic-release/usage/configuration#configuration-file">语义发布配置:
{
"extends": "@adfinis-sygroup/semantic-release-config"
}
这个 repo 还包含 commitlint一个>。 通过将以下内容添加到 package.json
,对其进行配置以检查提交消息的格式是否符合常规提交格式 :
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
}
设置一个预提交钩子来集成它; 例如,通过安装 husky:
yarn add husky --dev
然后将以下内容添加到 package.json
:
{
"scripts": {
"prepare": "husky install"
}
}
并添加以下脚本(使用执行权限)到 .husky/pre-commit
:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# skip in CI
[ -n "$CI" ] && exit 0
# lint commit message
yarn commitlint --edit $1
CI Configuration
- Add credentials for GitHub and npm as described here
- Run semantic-release in the deploy stage as described here
发布 Github 工作流程示例:
name: Release
on: workflow_dispatch
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-node@v2
- name: Install dependencies
run: yarn install
- name: Release on NPM
run: yarn semantic-release
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Commitizen
您还可以选择设置 commitizen 以一种更具交互性的方式添加提交:
$ git cz
? Select the type of change that you're committing:
? What is the scope of this change (e.g. component or file name)?
? Write a short, imperative tense description of the change:
? Provide a longer description of the change: (press enter to skip)
? Are there any breaking changes? No
? Does this change affect any open issues? No
设置很简单:
npm install -g commitizen
commitizen init cz-conventional-changelog --yarn --dev --exact
之后,运行 git cz
而不是 git commit
。