2022-07-23 记一次 Gitee Go 流水线的使用
Gitee Go: https://gitee.com/features/gitee-go
由于我自己的服务器内存太小,最近在上面编译项目的时候经常因为内存不足失败,但我又不想花钱去升级服务器的配置,所以研究了下 Gitee Go 流水线的使用,在此记录一下使用过程。
准备工作:配置凭证
在开始之前,需要先配置好凭证,所谓的凭证就是用来调度第三方服务的 token/账号密码等,统一存在 Gitee 上,避免泄露风险。
以笔者的项目为例,需要配置两个凭证,一个用于通知,这里选择的是钉钉 WebHook,除了钉钉 WebHook 之外,Gitee 也还支持微信 WebHook 和飞书 WebHook,看自己需求选择即可。
另一个凭证是 Jenkins Master ,用于部署,如果不使用 Jenkins 部署也可以不填,也是看自己的项目选择即可。
开始:配置流水线
1.新建流水线
前往自己的项目主页,点击流水线
后,再继续点击新建流水线
即可。
2.填写基本信息
关于流水线的名称和唯一标识,可以改也可以不改。
但这里有个小 bug,如果名称和标识不一致的话,后续更新配置的时候会按照标识来保存配置文件,所以建议把名称和标识改成一样的。
3.填写触发事件
关于触发事件,也是按自己的需要填写。由于一般需要部署的分支都是 master 或 main 分支,所以也可以把目标分支改一下。
至于触发方式,一般是自动触发,也就是在 push 的时候触发。
4.任务编排
一般的项目部署都分为这几个步骤:编译(构建)、发布、部署,下面一个一个来看
4.1 编译
首先是编译,Gitee Go 支持多种语言的项目构建,选择自己需要的即可。
更具体的内容可参考文档说明:https://gitee.com/help/articles/4372
由于笔者的项目是 Nodejs 项目,所以这里选择基于 Nodejs 构建。
任务中的大部分地方都不需要改,需要注意的地方是 Node 版本号
和 构建命令
。
默认的 Node 版本号大部分情况下够用,但我还是建议用最新的 lts 版本,因为性能更好一些。
然后是构建命令,常见的 Nodejs 项目的构建命令基本上都是npm run build
,产物的输出文件夹也大多是dist
,如果有不一致的,按自己项目的修改即可。
另外在稍微说下怎么使用 yarn、pnpm 等其他构建工具,按照文档说的,全局安装即可,例如使用 yarn 则在npm install
增加npm i -g yarn
1 | npm i -g yarn |
此外,建议在编译这一步添加 WebHook 知和超时设置,因为编译这一步是最容易出错的地方,所以很有必要知道任务执行的结果。至于超时设置,按项目实际情况填写即可。
4.2 发布
发布这一步,对于内部项目,选择上传制品
即可,因为不需要版本号。
但如果需要对外发布,则选 发布
会更好,这样会有一个唯一的版本号来标记 Release 包,便于版本管理。
这里选择上传制品
作为演示,全部默认即可,制品也只是中间产物,所以无需在意名称。
【备注:经过后续的研究发现,如果只使用到BUILD_ARTIFACT
的话,是不需要上传制品
的,原因是 BUILD_ARTIFACT
是在第一步的编译生成的,所以可以直接在部署阶段使用】
4.3 部署
在部署这块,除了 Gitee Go 官方提供的四种方式外,还可以通过 Jenkins 部署。
如果上述方式都不满意的可以直接手写 shell 脚本完成部署。
在这里演示通过 Jenkins 部署
,通过主机部署
、主机滚动部署
等方式的部署形式在文档中有详细说明,故在此不再赘述。
在这里使用提前配置好的 Jenkins 凭证,选择需要触发的 job ,如果没有 job ,去 Jenkins 新建一个就行,后续会讲到。
这里的关键是这个触发参数,如果你前面没有修改过构建暂存物的名称,这里左边填写BUILD_ARTIFACT
,右边填写${BUILD_ARTIFACT}
即可。
接下来是 Jenkins 的任务配置,选择自由风格即可。
接下来需要重点关注下,一定要启用参数化构建过程
,并在里面配置好 BUILD_ARTIFACT
。
最后则在构建这里选执行shell
,然后编写一段 shell 脚本。
1 | rm -rf dist |
在这里说下 BUILD_ARTIFACT
具体是什么内容,实际上就是一个用于访问构建产物的链接,通过浏览器直接访问或者 wget
等方式都能下载到构建产物,下载的内容是一个 .tar.gz
压缩包,解压缩之后就是需要的内容。
到了这一步,构建产物就已经到了自己的服务器上,后续要部署到什么地方就看自己的需要了。
5.保存流水线配置
当流水线配置完毕时,保存即可,可以在项目源代码的 .workflow
文件夹下看见配置。
产品定价和计费
完成配置之后,可以手动触发或者提交些代码上去测试一下流水线的运行,再根据结果进行调整,一切就绪后就可以尽情使用 Gitee Go 了。
目前 Gitee Go 对于每个企业/组织/个人每月有 1000 分钟免费构建时长,对于个人用户而言是绰绰有余了,而用量比较大的话就需要购买加时包了,看自己需求即可。(参考文档:https://gitee.com/help/articles/4365)
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/b64b0bdb.html
版权声明:转载请注明出处!