如何使用CNB构建Hexo项目并部署到腾讯云COS
本文介绍阿猪尝试使用腾讯云CNB构建Hexo项目并部署到腾讯云COS的过程。
一、场景概述
阿猪的博客基于Hexo框架,部署流程如下:
1、在本地使用Vscode编辑文章
2、将本地Hexo项目推送到腾讯云CODING DevOps的仓库中
3、使用CODING DevOps的CI/CD功能自动构建项目,并将产物部署到腾讯云COS存储桶
4、使用腾讯云CDN提供加速服务,将COS存储桶设为CDN的源站。
可惜腾讯云去年9月将CODING DevOps下线了,再加上阿猪去年较忙,一直没有花精力去研究替代方案,导致博客断更了大半年。
最近闲下来些,阿猪重新研究了替代方案,并写此文作以总结和分享。
二、操作流程
鉴于“能用就行”的偷懒原则,阿猪决定继续沿用先前的部署方案,仅使用其他代码仓和构建主机来替代原先的CODING DevOps。阿猪无脑选择了CODING DevOps官网推荐的替代方案:腾讯云CNB(Cloud Native Build,云原生构建)。
1、准备工作
(1)一个用作CDN源站的腾讯云COS存储桶。
管理路径为 腾讯云控制台 -> 对象存储 -> 存储桶列表。
(2)一个有权限访问COS存储桶的SecretId和SecretKey。
管理路径为 腾讯云控制台 -> 访问管理 -> 访问密钥 -> API密钥管理。
(3)已经在CNB中创建了一个组织,用于创建和管理仓库。
(4)一个用于存储Hexo项目源代码的空白CNB仓库(公开或私有均可)。
管理路径为 组织的首页 -> 右上角“+” - “创建仓库”。
(5)一个有权限访问CNB中Hexo项目仓库的Git客户端凭据。
管理路径为 组织的首页 -> 右上角头像 -> 个人设置 -> 访问令牌。
2、创建环境变量文件
CNB不能像CODING DevOps那样直接在仓库的设置中管理环境变量,需要先将环境变量写入另一个仓库中,然后再在CI/CD配置文件中引用。
登录CNB后进入组织的首页,依次点击页面右上角的“+” -> “创建仓库”。
进入“创建仓库”页面,填写仓库名称、公开性选择“密钥仓库”。
在这个新建的密钥仓库中创建一个yml文件,文件名随意,内容如下:
1 | # 腾讯云 SecretId |
3、将本地Hexo项目推送到CNB仓库
(1)在本地添加远程仓库
仓库地址的格式为https://cnb.cool/<组织名称>/<仓库名称,不带.git>
(2)将本地Hexo项目PUSH到CNB仓库
不要Fetch,直接PUSH即可,以免产生冲突。注意本地与远程的分支名称保持一致。
4、配置CNB CI/CD
此处是本文的核心,本文的其他内容都只是出于行文完整而捎带的。
在本地Hexo项目的根目录中创建一个.cnb.yml文件(文件名不可自定义),内容如下:
1 | main: |
此后每当本地Hexo项目向远程仓库推送更新时,都会触发CNB的云原生构建服务,自动构建Hexo项目并将构建产物部署到腾讯云COS存储桶。
如果没有自动触发CNB的云原生构建服务,请检查仓库设置中是否勾选了”允许自动触发“选项。
