记录一下如何利用 GitHub Pages 实现托管部署个人仓库代码,利用 Github Actions 实现自动部署。

GitHub Pages

Pages 的开启还是比较简单的。

  1. 进入用户的仓库。
  2. 点击 Settings 标签页。
  3. 再点击 Pages,我们就可以进入到 Github Pages 的设置页面。

Source 用来指定网站的目录文件夹,可以指定特定的分支和指定的文件夹。

这里推荐使用 gh-pages 分支的根目录作为目录文件夹,不会对主分支(master/main)的历史记录产生影响。可以参看:黑人de问号:使用 GitHub Actions 高效部署你的博客

GitHub Actions

GitHub Actions 的工作流程位于仓库的 .github/workflows, 每个工作流程名为 *.yml

对配置文件的参数大致理解:

name 可选,工作流程的名称,展示在 Actions 选项卡
on 指定自动触发工作流程的事件
jobs 将工作流的作业集合
jobs.<job_id> 作业 id,唯一字符串,只能包含字母数字 - _
<job_id>.runs-on 必填,运行作业的机器类型,如 ubuntu-latest
<job_id>.steps 步骤,包含一连串的任务
steps[*].name 步骤名称
steps[*].uses 选择一个动作来运行
steps[*].run 使用操作系统的 shell 运行命令行程序,可运行多行命令
steps[*].with 使用键/值对作为动作的入参,参数被设置为环境变量,且前缀是INPUT_
steps[*].env 为步骤设置环境变量,以便在运行环境中使用

一些常用的 actions

本仓库使用的 github-pages.yml 如下:

name: 部署blog到github pages

on:
  push:
    branches:
      - master
    paths:
      - '_posts/**'
      - '_includes/**'
      - '_layouts/**'
      - '_sass/**'
      - 'tag/**'

jobs:
  github-pages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: helaili/jekyll-action@v2
        with:
          token: $

自定义脚本

根据上面的步骤,我们已经能够建立 CI/CD。但是还不能将网站自动合并到 gh-pages。

我们可以通过脚本合并,可以自定义,也可以利用 GitHub Marketplace Action上的。如:

自定义的脚步可以查看:osiris/bin/build.sh

参考链接