GitHub Actions+Serverless搭建博客

本文最后更新于:2021年11月7日 下午

这个博客网站架构经历了好几次的变更:

  • 为了学习django:在学校对着视频,自己写了一个传统博客站点,对应的项目:Github
  • 自己写的前端太丑:转入博客园
  • 博客园也不稳定:转入gitpage
  • gitpage太慢:转入腾讯云

去年在V站上面,看到小伙伴在推荐良心云的云开发 CloudBase可以有免费的cdn用,也是觉得gitpage的访问速度属实太慢了,去年年底就把博客挂在了良心云上面,目前使用下来,访问速度还是比较满意的。

本文主要记录一下,配置github actions 自动化部署hexo站点到CloudBase。

获取配置信息

secretId 🔐

Required 云开发的访问密钥 secretId.

在腾讯云访问管理页面获取

secretKey 🔐

Required 云开发的访问密钥 secretKey.

在腾讯云访问管理页面获取

envId 🔐

Required 云开发的环境 id envId.

可以在云开发的控制台获取

staticSrcPath

Github 项目静态文件的路径。 默认值 build

如果需要上传项目根目录,可以填写 ./, 不过需要注意忽略不必要的文件,默认情况下会忽略 .git,.github,node_modules

staticDestPath

静态资源部署到云开发静态托管的路径,默认为根目录。

staticIgnore

v.1.1.0 版本开始支持

静态资源部署时忽略的文件路径,支持通配符,例如node_modules/**, 多个路径可以用,隔开,默认值 .git,.github,node_modules

Github仓库配置

前往项目 Github 文件夹的Settings标签页,在项目的Secrets中配置 准备工作 步骤获取的 SECRET_IDSECRET_KEYENV_ID

4Smrw9.jpg

创建工作流

Workflow 就是 GitHub Actions 的配置文件,类似于 .travis.yml

首先新建文件:

1
2
mkdir -p .github/workflows
touch .github/workflows/deploy.yml

编辑 deploy.yml

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
name: Deploy                      # Actions 显示的名字,随意设置

on: [push] # 监听到 push 事件后触发

jobs:
build:

runs-on: ubuntu-latest

steps:
- name: Checkout # 拉取当前执行 Actions 仓库的指定分支
uses: actions/checkout@v2
with:
ref: hexo

- name: Update Submodule # 如果仓库有 submodule,在这里更新,没有则删掉此步骤
run: |
git submodule init
git submodule update --remote

- name: Setup Node # 安装 Node 环境
uses: actions/setup-node@v1
with:
node-version: "16.5"

- name: Hexo Generate # 安装 Hexo 依赖并且生成静态文件
run: |
rm -f .yarnclean
yarn --frozen-lockfile --ignore-engines --ignore-optional --non-interactive --silent --ignore-scripts --production=false
rm -rf ./public
yarn run hexo clean
yarn run hexo generate

- name: Deploy to Tencent CloudBase
uses: TencentCloudBase/cloudbase-action@v1.1.1
with:
secretId: ${{ secrets.SECRETID }}
secretKey: ${{ secrets.SECRETKEY }}
envId: ${{ secrets.ENVID }}
staticSrcPath: ./public
staticIgnore: .git,.github,node_modules

自动部署

配置完后即可提交代码体验自动部署,在每次 git push 命令完成后,Actions 都会自动运行,将项目的静态资源部署到您的云开发静态托管环境中,部署成功之后即可通过云开发提供的 默认域名 访问来您的网站。

4Sne0J.png


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!