之前尝试手动部署博客到服务器,感觉好麻烦()索性不想写博客了。前阵子受社团一位积极更博的同学感染,终于下决心~~抽出摸鱼时间~~整个自动化部署博客,鼓励自己进行每日产出<!-- more -->~~怎么会有人买服务器一年多了才会用 workflow 啊,哦不好意思原来是我~~鸣谢逸哥的神级指导,逸哥永远的神!qaq部署时的主要参考教程:Github Actions 自动部署 hexo 博客到阿里云,本文在参照该教程的基础上加了一些细节
创建 Hexo 博客仓库并上传 Hexo 项目
不是本文重点,暂且略过。网上一搜教程一大堆(
建立 Bucket

建立成功后,在
基础设置中找到静态页面,将子目录首页设置为已开通
在
传输管理中找到域名管理,进行绑定域名
点
传输加速,点设置开启传输加速并保存
此时出现
传输加速访问域名,将其复制在阿里云控制台打开
云解析DNS,在域名解析中点击当前要部署的域名
点击
添加记录
在
记录类型中选择CNAME,在主机记录中填写想设置的三级域名名字,在记录值中粘贴刚刚复制的传输加速访问域名,点击确认。记住这里设置的主机记录的名字,和域名合起来就是最终部署的网站地址啦
创建 AccessKey
开启 ACK 权限

将 AccessKey 添加到 Github Secrets
打开博客所在仓库,点击
Settings->Secrets->Actions->New repository secret,创建KEY和SECRET,分别填入刚刚创建的用户的AccessKey ID和AccessKey Secret点击博客仓库的
Actions->set up a workflow yourself。以下是本人参考文首博客小改之后的 workflow 文件,仅供参考yaml# workflow name name: Hexo Blog CI # 在main分支上有push命令时触发该流程 on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Repository master branch uses: actions/checkout@master - name: Setup Node.js 14.x uses: actions/setup-node@master with: node-version: '14.x' - name: Setup node Dependencies run: npm install | npm install -g hexo-cli - name: Setup Hexo Dependencies run: hexo clean | hexo generate - name: setup aliyun oss uses: manyuanrong/setup-ossutil@master with: endpoint: oss-cn-hangzhou.aliyuncs.com access-key-id: ${{ secrets.KEY }} # 刚刚配置过的AccessKeyId access-key-secret: ${{ secrets.SECRET }} # 刚刚配置过的AccessKeySecret - name: cp files to aliyun run: ossutil cp -rf public oss://xxxxxx # 将xxxxx改成建立的Bucket名称,-rf表示覆盖
完成后点击
Start commit,然后静等 CICD 结果吧。祝部署顺利!配置 HTTPS
能正常访问网站之后,我们可以试着给网站配个 HTTPS
由于阿里云不会泛域名解析,所以每次创建二级域名都要重复一遍这个过程(
在
Bucket列表的传输管理的域名管理中,选择之前绑定的域名,点击证书托管
点击
上传SSL证书
点击
创建证书后,点击证书申请
证书绑定域名填好域名,点下一步、验证、提交审核,等待审核通过(一般很快此时再回到 oss 管理控制台,点击
证书托管,会发现证书名称已经有可选的选项了。勾选后点击上传踩坑
由于博客根目录下
_config.yaml中root的值一开始设置为/blog,所以初次部署时 css 路径出现问题无法正常显示,后来将root改为/,重新部署后正常显示Article Index