Life with teacher Lemon.

利用 Github Actions 自动化部署 Github Pages

2020.04.13 | 共 800 字,阅读需约 2 分钟.

Github Actions

Github Actions 是 Github 推出的一项持续自动化部署 repository 的效率工具,根据个人或者组织设定的脚本来完成对工程的自动化部署,使得代码审查、分支以及 issue 的管理按照你设定的方式进行工作。

下面我们来操作下 Github Action 的自动化配置过程。

环境准备

  • 个人站点的博文管理 repository:scopor/life
  • 个人站点的编译输出 reposiroty:scopor/scopor.github.io

配置公私秘钥

  • 使用 openssh 生成秘钥

    ssh-keygen -t rsa -b 4096 -C "scopor.github.io"
    
  • 设置存储秘钥的文件

    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/.ssh/id_rsa): /c/Users/.ssh/deploy
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/.ssh/deploy.
    Your public key has been saved in /c/Users/.ssh/deploy.pub.
    The key fingerprint is:
    SHA256:MpU2IEDuvNADO1AVWrQx/3HMAECYw+C3taw+5Fyy2F4 scopor.github.io
    The key's randomart image is:
    +---[RSA 4096]----+
    |.++B@oo..        |
    |.o=o * . =       |
    |o.oo... * +      |
    |.*. + .+ +       |
    |+ =. oo S        |
    | o =.. o         |
    |  B.+E           |
    | ..*.            |
    |  .o.            |
    +----[SHA256]-----+
    
  • 打开生成的私钥文件 /c/Users/.ssh/deploy,复制内容,配置到 scopor/life –> Settings -> Secrets 中,名称定义为ACTIONS_DEPLOY_KEY,下面要用到该名称。

  • 打开生成的公钥文件 /c/Users/.ssh/deploy.pub,复制内容,配置到 scopor/scopor.github.io –> Settings –> Deploy Keys。名称定义为ACTIONS_DEPLOY_KEY,和上面保持一致,注意勾选上权限。

配置 Github Actions 脚本

打开 scopor/life 工程中的 Actions,初始化界面左侧,就是需要改写的自动化脚本信息,下面是我的详细配置。

# This is a basic workflow to help you get started with Actions
name: CI

# 持续发布的分支
on:
  push:
    branches: master

# 执行的 jobs
jobs:
  # 编译环境
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # 执行的步骤
    steps:
    # 检出 scopor/life 工程,固定写法
    - uses: actions/checkout@v1
    
    # 本人的站点使用的是 hugo,此处设置的 hugo 的版本
    - name: Setup Hugo
      uses: peaceiris/actions-hugo@v2
      with:
        hugo-version: latest
      
    # 执行 hugo,编译出源文件
    - name: Build
      run: hugo --minify

    # 部署
    - name: Deploy
      uses: peaceiris/actions-gh-pages@v3
      with:
        deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} # 上面配置的私钥名称
        external_repository: scopor/scopor.github.io # Pages 发布到远程仓库
        publish_dir: ./public # hugo 编译生成的 public 目录下的文件
        keep_files: true # 保留远程仓库已存在的文件
        publish_branch: master  # 远程仓库分支
        commit_message: ${{ github.event.head_commit.message }}

点击右侧的保存脚本按钮,查看 Actions 中的 CI 执行信息是否成功,至此 Github Actions 配置结束,当每次 push 了新的信息到源文件库,就会触发 CI 执行,然后就可以看到自己的网站内容更新了。

发表评论
今日诗词