弹霄博科

小谈谈一亩三分地



使用 CODING CI 一键更新 Twikoo 云函数


发布日期: 2020/12/25
更新日期: 2020/12/25
作者: 小谈谈
分类: 运维
标签: cloudbase, coding.net, ci, twikoo
阅读时间: 2 分钟
字数: 347 字


Merry Christmas!

Twikoo 是一个简洁、安全、免费的静态网站评论系统,基于腾讯云开发。

Twikoo 的作者提供了一键将 Twikoo 云函数部署到云开发环境中,但因为一些限制,只支持按量计费环境。使用包年包月的计费环境无法使用一键部署。

通过使用 CODING CI 功能,可以实现一键将 Twikoo 云函数部署到云开发中。

在开始本文前,你需要了解如何使用 CODING CI 功能实现云函数自动化部署,请戳这里

重点是设置 SecretId 和 SecretKey,并将其加入 CODING 的凭据中。

新建一个构建计划,选择“自定义构建过程”,不使用代码源。

在流程环境变量中,加入刚刚添加的 Coding 凭据,变量名为 CREDENTIALSID。

直接编辑静态配置的 Jenkinsfile,代码如下。

```
pipeline {
agent {
docker {
reuseNode true
registryUrl 'https://coding-public-docker.pkg.coding.net'
image 'public/docker/nodejs:12'
}
}
stages {
stage('拉取Twikoo最新源码') {
steps {
echo '正在更新源码...'
sh 'git clone https://e.coding.net/imaegoo/twikoo/twikoo.git'
}
}
stage('更新云函数') {
steps {
echo '安装Cloudbase-Cli'
sh 'npm i -g @cloudbase/cli'
echo '使用令牌登录Cloudbase-Cli'
withCredentials([cloudApi(credentialsId: env.CREDENTIALSID, secretIdVariable: 'CLOUD_API_SECRET_ID', secretKeyVariable: 'CLOUD_API_SECRET_KEY')]) {
sh 'tcb login --apiKeyId "${CLOUD_API_SECRET_ID}" --apiKey "${CLOUD_API_SECRET_KEY}"'
}

echo '更新Twikoo云函数'
sh 'tcb fn deploy "${functionName}" -e "${tcbEnvId}" --force --dir ./twikoo/src/function/twikoo'
}
}
}
environment {
tcbEnvId = 'TCB 环境ID'
functionName = 'twikoo云函数名'
}
}
```

填写对应的环境变量,tcbEnvId 为 CloudBase 云开发云环境的环境 ID,functionName 是 twikoo 的云函数名,默认为 twikoo。

完成对 Jenkinsfile 的保存,部署即可。

正常情况下,会看到如下的日志。

[图片: 1608810888]
https://static.txisfine.cn/upload/1608810888.png/pkwatermark

每次作者更新了云函数,只要点击这里重新部署即可。

[图片: 20201224195349]
https://static.txisfine.cn/upload/20201224195349.png/pkwatermark

或者,你还可以使用 API 方式进行触发。

[图片: 20201224195807]
https://static.txisfine.cn/upload/20201224195807.png/pkwatermark