基于Gitee Go的函数代码更新与版本发布
在之前的文章中,介绍了如何通过Github + Github Action进行单纯的代码更新以及版本发布,这一部分将会分享如何通过Gitee + Gitee Go实现:
实践前准备
首先,我们在开始正式实践之前,我们要做几个事情:
安装Serverless开发者工具
通过 包管理安装:适用于已经预装了 npm 的 Windows、Mac、Linux 平台。在 Windows、Mac、Linux 平台执行以下命令安装 Serverless Devs Tool工具。
$ npm install @serverless-devs/s -g
$ yarn global add @serverless-devs/s
说明:
如果在 Linux 或 MacOS 下执行该命令报错且报错信息为 ,请执行命令 ,serverless-devs安装位置可以通过 查找。
如果在 Linxu 下执行该命令报错且报错信息为 ,请执行命令 。
如果安装过程较慢,可以考虑使用淘宝 npm 源,安装命令为 。
部署一个函数到线上
s init nodejs-koa
初始化的时候会让我们填写相关内容,例如项目目录,选择密钥等:

如何配置阿里云密钥信息,可以参考:http://www.serverless-devs.com/docs/provider-config/alibabacloud

稍等片刻,即可看到项目已经完成部署:

我们打开项目页面:

至此,我们的准备环节完成。
基于Gitee的CD能力建设
在这一步,我们需要做几个事情:
创建一个Gitee仓库:

push代码到仓库

推送后:

配置环境变量
此时,我们将阿里云的密钥等信息配置到环境变量:

例如配置:

配置后的效果:

此时开启Gitee Go:

然后:

点击创建流水线,并输入流水线内容:

流水线文件名:
流水线配置:
name: koa-cicd
displayName: 'KOA自动部署流水线'
triggers: # 流水线触发器配置
push: # 设置 master 分支 在产生代码 push 时精确触发(PRECISE)构建
- matchType: PRECISE
branch: master
commitMessage: '' # 通过匹配当前提交的 CommitMessage 决定是否执行流水线
stages: # 构建阶段配置
- stage: # 定义一个 ID 标识为 deploy-stage ,名为「 Deploy Stage 」的阶段
name: deploy-stage
displayName: 'Deploy Stage'
failFast: false # 允许快速失败,即当 Stage 中有任务失败时,直接结束整个 Stage
steps: # 构建步骤配置
- step: npmbuild@1 # 采用 npm 编译环境
name: deploy-step # 定义一个 ID 标识为 deploy-step ,名为「 Deploy Step 」的阶段
displayName: 'Deploy Step'
inputs: # 构建输入参数设定
nodeVersion: 14.15 # 指定 node 环境版本为 14.15
goals: | # 安装依赖,配置相关主题、部署参数并发布部署
node -v
npm -v
npm install -g @serverless-devs/s
s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default
cd src && npm install
s cli fc-api updateFunction --region cn-hangzhou --serviceName koademo --functionName http-trigger-function --code '{"zipFile":"./"}'
s cli fc-api publishVersion --region cn-hangzhou --serviceName koademo
其实核心部分只有5句话:
npm install -g @serverless-devs/s
s config add --AccountID $ACCOUNTID --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default
cd src && npm install
s cli fc-api updateFunction --region cn-hangzhou --serviceName koademo --functionName http-trigger-function --code '{"zipFile":"./"}'
s cli fc-api publishVersion --region cn-hangzhou --serviceName koademo
此时,我们可以对Index.js内容进行更改:

然后保存,稍等片刻,可以在流水线中看到这个发布流程:

此时,我们可以点到流程中查看详情:

稍等片刻,可以看到CD流程完成:

完成之后,我们可以点击查看线上的代码:

案例总结
基于Serverless架构进行项目开发,与CI/CD的集成,搞定自动化发布等是必不可少的“课程”,希望通过本文,读者可以对相关的流程有进一步的思路,可以应用到自己的项目中。