之前博客一直是放在 CloudBase 云开发上的。主要用了云开发的静态网站托管和云函数功能。自从评论系统维护之后,云函数也不再使用了。
前几天收到了腾讯云的通知,云开发计费方式调整,将于 8 月后使用“基础套餐 + 按量付费”模式,需先购买带有一定配额的基础套餐,超出配额部分再按使用量付费。

虽然仍然有免费版本,但静态网站托管必须使用按量计费套餐才能使用,换言之,免费用户就不能再使用云开发做静态网站托管了。
在我理解下,CloudBase 是一个能力集合服务,静态网站托管依赖于 COS 和 CDN,云函数依赖于 Serverless,云托管依赖于容器服务。其它服务都可以非常灵活的按量计费的,为什么到云开发这打包之后就有了门槛了。。。
最后决定还是迁移吧。迁到 COS 去。
本次调整
- 原站迁移到腾讯云 COS 成都节点
- 全站支持 IPv6 访问
- 调整了打包流程,增加了对静态网站的制品管理
CODING Jenkinsfile
还是放一个 CODING 的 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| pipeline { agent any stages { stage('Checkout') { steps { // 企业微信通知 sh '''curl \'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=\'"${WEWORK_BOT}"\'\' \\ -H \'Content-Type: application/json\' \\ -d \'{ "msgtype": "markdown", "markdown": { "content": "# \'$JOB_ID\' 开始构建 >项目名称:\'$PROJECT_NAME\' >Git Commit:\'$GIT_COMMIT_SHORT\' >Git 提交人:\'$GIT_COMMITTER_NAME\'" } }\'''' checkout([ $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[ url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID ]]]) } } stage('Node.js') { steps { // CODING自己带的 nodejs 版本太低了,换成12.x版本 dir('/root/.cache/downloads') { sh 'wget -nc "https://coding-public-generic.pkg.coding.net/public/downloads/node-linux-x64.tar.xz?version=v12.22.7" -O node-v12.22.7-linux-x64.tar.xz | true' sh 'tar -xf node-v12.22.7-linux-x64.tar.xz -C /usr --strip-components 1' } sh 'node -v' } } stage('Build') { steps { // 博客前台的 GIT 提交标记 sh 'sed -i \'s/Preview/\'"$GIT_COMMIT_SHORT"\'/g\' _config.butterfly.yml' sh '''npm install -g hexo-cli@4.3.0 npm install -g hexo version''' sh 'hexo g' } } stage('COS Deploy') { steps { // 上传到 COS sh "coscmd config -a ${COS_SECRET_ID} -s ${COS_SECRET_KEY} -b ${COS_BUCKET_NAME} -r ${COS_BUCKET_REGION}" sh 'coscmd upload -r ./public/ /' } } stage('CODING Upload') { steps { // 将最新版本的打包文件发布到 CODING 的一个 GIT 仓库中 sh 'hexo d' script { // 定义了一个制品版本号,GIT-提交标记 ARTIFACT_VERSION = "GIT-${env.GIT_COMMIT_SHORT}" } // 调用 CODING 插件上传制品到制品库 codingArtifactsGeneric(files: 'public/*', repoName: 'static_html', version: ARTIFACT_VERSION, zip: 'web_static.zip') } } } post { // 构建成功的企业微信通知 success { sh '''curl \'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=\'"${WEWORK_BOT}"\'\' \\ -H \'Content-Type: application/json\' \\ -d \'{ "msgtype": "markdown", "markdown": { "content": "# \'$JOB_ID\' 构建成功 >项目名称:\'$PROJECT_NAME\' >Git Commit:\'$GIT_COMMIT_SHORT\' >Git 提交人:\'$GIT_COMMITTER_NAME\'" } }\'''' } } }
|
需要关联的环境变量
COS_BUCKET_NAME:COS 桶名称
COS_BUCKET_REGION:COS 桶所在地域
COS_SECRET_KEY:有 COS 操作权限的腾讯云访问密钥 KEY
COS_SECRET_ID:有 COS 操作权限的腾讯云访问密钥 ID
WEWORK_BOT:企业微信 BOT 的 KEY
制品库的效果
之前使用hexo d
的方式推送打包的静态文件,我们没法看到提交历史。所以打算使用制品库来管理一下打包的文件。

这样可以清晰的 Get 到每次提交打包出来的静态文件了。