上篇博客中已经实现在本地预览博客, 本篇会将本地博客部署到Github Page

配置Github Actions

Github Actions 是 Github 推出的一款持续集成工具, 这里我们可以用来发布博客到Github Page

  1. 新建workflow文件

    只有当项目中.github/workflows目录下存在以.yml结尾的配置才会触发Github Actions

    cd Blog
    mkdir -p .github/workflows
    touch .github/workflows/deploy.yml
  2. 配置deploy.yml文件

# workflow name
name: Deploy To Github Pages

# 当有 push 到仓库和外部触发的时候就运行
on: [push, repository_dispatch]

# ACCESS_TOKEN
jobs:
deploy:
name: Deploy Hexo Public To Pages
runs-on: ubuntu-latest
env:
TZ: Asia/Shanghai

steps:
# check it to your workflow can access it
# from: https://github.com/actions/checkout
- name: Checkout 🛎️
uses: actions/checkout@v2 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly.
with:
persist-credentials: false
submodules: true

# from: https://github.com/actions/setup-node
- name: Setup Node.js 10.x 🔧
uses: actions/setup-node@master
with:
node-version: "10.x"

- name: Setup Hexo Dependencies 🔧
run: |
npm install hexo-cli -g
npm install
npm run build

# from https://github.com/marketplace/actions/deploy-to-github-pages
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@releases/v3
with:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
BRANCH: gh-pages # The branch the action should deploy to.
FOLDER: public # The folder the action should deploy.
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}

最新版可以查看我的配置
3. 流程介绍

根据上面的配置可以看到主要分为4步

  • Checkout 拉取你的博客, 默认拉取本项目
  • 安装Node环境
  • 安装Hexo依赖
  • 部署到Github Page

生成ssh私钥

有了ssh私钥可以实现免密码将博客推送到Github

具体配置可以参照Linux下的ssh配置, 只用完成第一部分ssh生成

将公钥添加到Github

push到Github时需要验证身份, 添加ssh公钥到Github, 本地使用私钥验证便有权限操控仓库

在Github账号设置中添加ssh/id_rsa.pub文件中的内容
ssh

生成ACCESS_SECRET

有了ACCESS_SECRET, Github Actions 才有权限写入仓库

可以在Github账户设置中生成一个
token

至少必须给read, write repo的权限
保存好生成的一串数字字母

在Github上新建仓库

  1. 进入新建仓库页面
  2. 新建一个仓库, public和private均可, 但推荐public, 否则Github Page需要另外新建一个仓库
    new repo
  3. 在项目设置中添加ACCESS_SECRET, Value就是上面生成好的token
    secret
  4. 根据提示push项目

查看Github Actions工作情况

当push项目后, 在Actions选项中能看到已经自动运行部署
workflow

如果有报错信息, 则根据信息修改

自定义域名设置

在项目Settings中可以设置域名并开启https
setting

注意若设置的是子域名, 则需要在DNS设置中加入CNAME规则, 使子域名指向username.github.io

写作发布流程

至此, 应该能使用username.github.io访问你的博客了, 后续写作的流程是

  1. hexo new 'Hello world' 生成新文章
  2. 写作
  3. git add, git commit, git push
  4. Github Actions 自动部署

转载申请

知识共享许可协议

本文知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接