Github CI自动发版

介绍如何通过 GitHub Actions 和 Semantic Release 自动生成版本号、Tag 与发布记录。

介绍一款CI插件, 叫semantic-release, 根据提交信息, 自动打tag后发布release

提交类型版本提升
featMINOR(1.1.2 -> 1.2.0)
fixPATCH(1.1.2 -> 1.1.3)

我们在生产环境经常需要发版, 所以semantic-release是比较好的选择, 无需我们手动打tag并发布

不过需要注意的是, 需要对代码进行测试, 能够正常build的才能走自动化打包发版的流程

例子

下面用github发版Go SDK包为例子

release.yml

.releaserc.json

json
{
    "branches": [
        "main"
    ],
    "tagFormat": "v${version}",
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/github"
    ]
}

具体仓库参考

https://github.com/codepzj/go-lib

MySQL 表结构常用操作
git-filter-repo 清理敏感信息