使用 semantic-release 配合 GitHub Actions 自动生成 changelog.md

GitHub Actions 是 GitHub 的持续集成服务Github Action 入门教程

semantic-release 支持很多持续集成工具,为我们提供设置 changelog、版本号的功能。

这里我们将使用GithubAction 与 semantic-release 为我们的 github 搭建自动创建 changelong 的功能,GithubAcion 还能做更多的事情,这里先不介绍,可以自行查阅学习。

为 github 项目添加 GITHUB_TOKEN

参考这篇文章

image.png

记住你的GITHUB_SECRETS 名称,后面的脚本需要用到,比如我的是 ACCESS_TOKEN,如果在 Action 中需要发布 npm包,需要配置 NPM_TOKEN

在项目中添加 ./github/workflows/release.yml

name: Release
on:
  push:
    branches:
      - master
jobs:
  release:
    name: Release
    runs-on: ubuntu-18.04
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Setup Node
        uses: actions/setup-node@v1
        with:
          node-version: 16
      - name: Install
        run: yarn
      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        run: npx semantic-release
复制代码

我的项目使用的是 yarn,分支必须是 master,GITHUB_TOKEN写入你上一步添加的 TOKEN 名字,参数不懂可查阅文章开头链接

在项目中添加配置文件 .releaserc

{
    "branch": "master",
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/changelog",
        [
            "@semantic-release/npm",
            {
                "npmPublish": false
            }
        ],
        [
            "@semantic-release/git",
            {
                "assets": [
                    "package.json",
                    "CHANGELOG.md"
                ],
                "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
            }
        ],
        "@semantic-release/github"
    ]
}
复制代码

最后 push 一下代码,在 github 中的Actions 可以看到这个 workflows 的过程,最后再查看一下 master 分支中也成功添加了 CHANGELOG.md,并自动为我们打了一个 tags

image.png

项目地址

猜你喜欢

转载自juejin.im/post/7055958932933574669