@belloai/bello-version
v1.0.17
Published
因为Github Actions 线上版本构建部署是通过Tag来触发的,并且Tag要按照一定的规则来,以完成线上版本的控制。为了减少人工打Tag带来的失误,因此开发一个CLI命令行工具辅助上线前的打Tag工作。
Downloads
4
Keywords
Readme
bello 自动打tag工具
因为Github Actions 线上版本构建部署是通过Tag来触发的,并且Tag要按照一定的规则来,以完成线上版本的控制。为了减少人工打Tag带来的失误,因此开发一个CLI命令行工具辅助上线前的打Tag工作。
打tag规则:[分支名]-[版本号]-[日期]
前端私有化项目打tag的同时会自动生成一份Dockerfile文件,以适配腾讯云容器构建。
bello-version
使用
// 全局安装
npm install -g @belloai/bello-version
// 使用命令 查看帮助
belloVersion
// 打tag
belloVersion tag
Tag标签
为什么打Tag
我们可以创建一个tag来指向软件开发中的一个关键时期,比如版本号更新的时候可以建一个“v2.0”、“v3.1”之类的标签,这样在以后回顾的时候会比较方便。 tag的使用很简单,主要操作有:查看tag、创建tag、验证tag以及共享tag。
同时为了触发腾讯云容器服务的docker构建,以便docker从COS对象存储中拉取前端源码,加快部署时间。因此Tag的命名规则为:release/sass-v1.4.2-2021-11-16
release
:为前缀,意为发布版本。sass
: 为分支名,意为需要把代码更新到sass分支,并触发腾讯云容器服务构建。v1.4.2
:为版本,意为当前项目的版本号,会根据功能自增minor,patch版本。- 最后的后缀很明显了,就是当前打Tag的日期。
Tag基本操作
创建
git tag v1.4.2
:创建tag
git tag -a v1.4.2 -m 'first version'
:带信息的tag:-m后面带的就是注释信息,这样在日后查看的时候会很有用
查看
git tag
: 查看tag,列出所有tag,列出的tag是按字母排序的,和创建时间没关系
git show v1.4.2
: 显示指定tag的信息
push推送
git push origin v1.4.2
:推送tag到gitHub仓库
git push origin --tags
:将所有tag 一次全部push到github上
删除
git tag -d v1.4.2
: 删除本地tag
git push origin :refs/tags/v1.4.2
: 删除github远端的指定tag
基于tag创建分支
git checkout -b new-branch v1.4.2
:创建一个基于指定tag的分支
使用到的npm包
cac
chalk
inquirer
semver
simple-git
,简单介绍下
[cac](https://www.npmjs.com/package/cac)
专门用于构建CLI应用程序的JavaScript库,对用户的输入进行提示,纠正以及解析,比如 version --help
就会显示CLI可用的命令行参数都有些啥。
用法十分简单:
// 当用户只输入version时,显示其他command的友好提示
cli.command("").action(() => {
cli.outputHelp();
});
// version tag时执行,支持传入option参数,来控制流程
cli
.command("tag", "Generate Tag for Current Version")
.allowUnknownOptions()
.action(() => {
handleVersionTag();
});
[chalk](https://www.npmjs.com/package/chalk)
用于美化Terminal中的字符,可以显得花里胡哨点。
[inquirer](https://www.npmjs.com/package/inquirer)
基本是CLI工具与用户进行交互必用的包了,可以收集用户输入,进行交互以执行不同的操作。
[semver](https://www.npmjs.com/package/semver)
易用,更语义化的版本管理库,semver
会按[semantic versioner](https://semver.org/)
规则去做版本管理。
[simple-git](https://www.npmjs.com/package/simple-git)
吹爆的git操作库,在node中可以自在的使用git操作,包括add,commit,push,pull,fetch
等等,如获取本地分支:git.branchLocal()
,打tag:git.addTag('tag')
,基本git能做的都能在node中调用来实现。