记一次 Gitee Go 流水线的使用

Gitee Go: https://gitee.com/features/gitee-go

文档:https://gitee.com/help/categories/69

由于我自己的服务器内存太小,最近在上面编译项目的时候经常因为内存不足失败,但我又不想花钱去升级服务器的配置,所以研究了下 Gitee Go 流水线的使用,在此记录一下使用过程。

准备工作:配置凭证

在开始之前,需要先配置好凭证,所谓的凭证就是用来调度第三方服务的 token/账号密码等,统一存在 Gitee 上,避免泄露风险。

image-20220723141515169

以笔者的项目为例,需要配置两个凭证,一个用于通知,这里选择的是钉钉 WebHook,除了钉钉 WebHook 之外,Gitee 也还支持微信 WebHook 和飞书 WebHook,看自己需求选择即可。

image-20220723141811010

另一个凭证是 Jenkins Master ,用于部署,如果不使用 Jenkins 部署也可以不填,也是看自己的项目选择即可。

image-20220723141836686

开始:配置流水线

1.新建流水线

前往自己的项目主页,点击流水线后,再继续点击新建流水线即可。

image-20220723142050809

2.填写基本信息

关于流水线的名称和唯一标识,可以改也可以不改。

但这里有个小 bug,如果名称和标识不一致的话,后续更新配置的时候会按照标识来保存配置文件,所以建议把名称和标识改成一样的。

image-20220723142119816

3.填写触发事件

关于触发事件,也是按自己的需要填写。由于一般需要部署的分支都是 master 或 main 分支,所以也可以把目标分支改一下。

至于触发方式,一般是自动触发,也就是在 push 的时候触发。

image-20220723142405370

4.任务编排

一般的项目部署都分为这几个步骤:编译(构建)、发布、部署,下面一个一个来看

image-20220723144241570

4.1 编译

首先是编译,Gitee Go 支持多种语言的项目构建,选择自己需要的即可。

更具体的内容可参考文档说明:https://gitee.com/help/articles/4372

image-20220723144558898

由于笔者的项目是 Nodejs 项目,所以这里选择基于 Nodejs 构建。

任务中的大部分地方都不需要改,需要注意的地方是 Node 版本号构建命令

默认的 Node 版本号大部分情况下够用,但我还是建议用最新的 lts 版本,因为性能更好一些。

然后是构建命令,常见的 Nodejs 项目的构建命令基本上都是npm run build,产物的输出文件夹也大多是dist,如果有不一致的,按自己项目的修改即可。

image-20220723144757116

另外在稍微说下怎么使用 yarn、pnpm 等其他构建工具,按照文档说的,全局安装即可,例如使用 yarn 则在npm install增加npm i -g yarn

npm i -g yarn
yarn
yarn run build

此外,建议在编译这一步添加 WebHook 知和超时设置,因为编译这一步是最容易出错的地方,所以很有必要知道任务执行的结果。至于超时设置,按项目实际情况填写即可。

image-20220723145431320

4.2 发布

发布这一步,对于内部项目,选择上传制品即可,因为不需要版本号。

但如果需要对外发布,则选 发布会更好,这样会有一个唯一的版本号来标记 Release 包,便于版本管理。

image-20220723145626793

这里选择上传制品作为演示,全部默认即可,制品也只是中间产物,所以无需在意名称。

image-20220723145743583

【备注:经过后续的研究发现,如果只使用到BUILD_ARTIFACT 的话,是不需要上传制品的,原因是 BUILD_ARTIFACT是在第一步的编译生成的,所以可以直接在部署阶段使用】

4.3 部署

在部署这块,除了 Gitee Go 官方提供的四种方式外,还可以通过 Jenkins 部署。

如果上述方式都不满意的可以直接手写 shell 脚本完成部署。

image-20220723145927109

image-20220723145942550

在这里演示通过 Jenkins 部署,通过主机部署主机滚动部署等方式的部署形式在文档中有详细说明,故在此不再赘述。

在这里使用提前配置好的 Jenkins 凭证,选择需要触发的 job ,如果没有 job ,去 Jenkins 新建一个就行,后续会讲到。

这里的关键是这个触发参数,如果你前面没有修改过构建暂存物的名称,这里左边填写BUILD_ARTIFACT,右边填写NULL即可。

image-20220723150227245

接下来是 Jenkins 的任务配置,选择自由风格即可。

image-20220723150707528

接下来需要重点关注下,一定要启用参数化构建过程,并在里面配置好 BUILD_ARTIFACT

image-20220723150808555

最后则在构建这里选执行shell,然后编写一段 shell 脚本。

rm -rf dist
rm -rf output.tar.gz

wget -O output.tar.gz "$BUILD_ARTIFACT"
tar xvf output.tar.gz

image-20220723150920815

在这里说下 BUILD_ARTIFACT 具体是什么内容,实际上就是一个用于访问构建产物的链接,通过浏览器直接访问或者 wget 等方式都能下载到构建产物,下载的内容是一个 .tar.gz 压缩包,解压缩之后就是需要的内容。

到了这一步,构建产物就已经到了自己的服务器上,后续要部署到什么地方就看自己的需要了。

5.保存流水线配置

当流水线配置完毕时,保存即可,可以在项目源代码的 .workflow文件夹下看见配置。

image-20220723151436854

产品定价和计费

完成配置之后,可以手动触发或者提交些代码上去测试一下流水线的运行,再根据结果进行调整,一切就绪后就可以尽情使用 Gitee Go 了。

目前 Gitee Go 对于每个企业/组织/个人每月有 1000 分钟免费构建时长,对于个人用户而言是绰绰有余了,而用量比较大的话就需要购买加时包了,看自己需求即可。(参考文档:https://gitee.com/help/articles/4365)

image-20220723151818028


评论

发表回复