同步操作将从 Gitee Go/Hexo OSS Deploy 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
《Gitee Go 持续交付之 Hexo 博客部署》
本仓库实战配套视频《从零开始教你Hexo博客自动部署》: https://www.bilibili.com/video/BV1Xv41147EL
Hexo 是一款基于
Node.js
的静态博客框架,依赖少易于安装使用,同时拥有着众多插件和主题,支持 Git、云主机、对象存储等方式部署发布。Gitee Go 是 Gitee 推出的
CI/CD
(持续构建与集成)服务。用户可以通过自定义构建流程,实现构建集成自动化。
在本实战案例中,我们将基于 Gitee Go
+ Hexo
+ 对象存储
的组合,实现 Hexo 博客的自动化部署发布。
本次实战基于 Gitee Go
+ Hexo
+ 对象存储
,因此需要准备如下内容:
在本次实战中,你可以根据已有的文档和教程自己搭建 Hexo 站点,并结合 Gitee Go 发布部署 Hexo 到 对象存储,也可以按照以下步骤,通过 Fork 本仓库案例。快速体验 Gitee Go + Hexo 博客自动部署的便利。
DevOps
」菜单找到并开通 Gitee Go
。OSS
或 腾讯云 TOS
对象存储。RAM
帐号。管理
」->「环境变量管理
」添加环境变量内容。Hexo 的使用和调试 基于 Node.js
,通过 npm install -g hexo && npm install -g hexo-cli
可以将 Hexo 全局安装到系统中调用。也可以通过 npm install hexo --save
将 Hexo 集成在当前的项目中。相关 Hexo 命令学习可以通过访问 Hexo快速入门 进行学习了解
Hexo 使用 Markdown 语法进行编写,支持常见的 Markdown 语法。
通过访问 Gitee Go 活动页面,选择相应需要领取时长的 个人/企业 并领取 500 分钟构建时长
通过访问阿里云 OSS 控制台 https://oss.console.aliyun.com/ ,输入 Bucket 名称并选择一个地域,完成 OSS Bucket 创建。通过 OSS Region和Endpoint对照表 获得对应的 RegionID
访问对应 OSS Bucket,通过「基础设置」->「静态页面」将 OSS Bucket 配置成静态网站托管模式。默认首页和默认 404 页 设置为 index.html
。
根据阿里云 【升级】8月13日OSS网页类型文件访问返回Header策略调整通知 ,如果希望使用 OSS 作为静态网站主站,需要绑定一个已备案的域名。
访问对应 OSS Bucket,通过「传输管理」->「域名管理」,输入博客站点的域名,此处以我的博客站点 normalcoder.com 为例,如果域名使用阿里云的域名解析服务,还可以直接勾选「自动添加 CNAME 记录」以完成自动添加 DNS 解析配置。
配置完成后,可以通过页面配置更多如 CDN 加速
、域名SSL证书
等内容。
完成配置后,通过
nslookup
可以查看 DNS 解析情况。
现在大多数云服务厂商的服务都可以通过 API 的形式调用,使用 Gitee Go 发布博客到 Aliyun OSS 需要开通相应权限的 RAM 帐号,获得对应的 AccessKey 和 SercretKey。
通过访问阿里云 RAM 访问控制台 https://ram.console.aliyun.com/users ,创建并分配一个 RAM 帐号,获得对应的 AccessKey ID 和 AccessKey Sercret。
通过分配 AliyunOSSFullAccess
获得分配到 OSS 读写权限。
回到 OSS Bucket,通过「权限管理」->「Bucket 授权策略」,将对应的 RAM 帐号添加到 Bucket 授权列表中,赋予「完全控制」权限。
访问并 Fork Hexo OSS Deploy 示例仓库,通过仓库「管理」—>「环境变量设置」,配置对应的环境变量,参考下表(此处变量信息为下文流水线配置使用,可以参考下文调整变量命名)。
变量名 | 变量含义和对应取值 |
---|---|
CLOUD | 固定值 aliyun/tencent,本文实例填写 aliyun |
REGION | 存储服务所在区域,上文提及的 regionID |
BUCKET | 存储服务的 BUCKET 名称 |
SECRET_ID | RAM SecretID,对应云服务商的 AccessKey ID |
SECRET_KEY | RAM SecretKey,对应云服务商的 AccessKey Sercret |
THEME | 所使用的主题,默认建议配置 landscape ,示例项目中包含:landscape /Chic /icalm /jacman 四个主题可选 |
SITE | 部署的自定义域名,文中示例为 normalcoder.com |
通过仓库导航「DevOps
」菜单找到并开通 Gitee Go
。
回到仓库中提交任意一个文件。触发流水线。即可触发完成部署。部署效果预览如下:
本实战案例中,流水线配置文件存在于 ./workfolow/deploy.yml,具体内容和字段说明如下:
# ========================================================
# 基于 aliyun OSS / tencent COS 构建部署 Hexo 静态网站示例
# 功能:通过 Node 编译构建 Hexo 项目并部署到 OSS / COS
# ========================================================
name: hexo-oss-deploy # 定义一个唯一 ID 标识为 hexo-oss-deploy ,名称为「 Hexo 部署(OSS) 」的流水线
displayName: 'Hexo 部署(OSS)'
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
npm run config url $SITE
npm run config theme $THEME
npm run config deploy.cloud $CLOUD
npm run config deploy.bucket $BUCKET
npm run config deploy.region $REGION
npm run config deploy.secretId $SECRET_ID
npm run config deploy.secretKey $SECRET_KEY
npm run clean
npm run deploy
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。