Merry Christmas!

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

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

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

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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

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

20201224195349

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

20201224195807