この記事は, GitHub Actions のテストも兼ねた投稿です.

何気に去年から部長やってます Forell (@F0rell) です. このブログが長らく更新されてなかったのと, 自分が何もやってないのもあったので動かしてみました.

さて, URL からわかる通り, このブログは GitHub Pages を用いて公開されています (該当リポジトリ: https://github.com/lc-tut/lc-tut.github.io). サイトを構成するために Hugo を用いており, リポジトリでは source ブランチを Hugo を用いてビルドして master に向けて該当ディレクトリ (docs/) を git subtree を用いて push することによってページを公開できるようにしております.

しかし, 手動でビルド, master に push するのははっきり言って面倒くさいです (初記事なのに何言ってるんだと思いますが, 大目に見てほしいです). 加えて, やり方が書いてあるといえども, git subtree という普段 (私が) 使わないコマンドも用いるため, 公開までのハードルが高いです.

そのため, GitHub Actions を使って自動でビルド + デプロイをしたいと考えました.

GitHub Actions とは

かなり雑に言うと GitHub が提供している CI/CD ツールです.

詳しいことはこことかここ見たらいいかと思います. 語れるほどやっているわけではないので URL 貼っつけになって申し訳ないです.

使った Action など

今回使った Action は以下の 3 つです:

また, 今回使用したワークフローは以下のようになります:

name: deploy gh-pages

on:
  push:
    branches:
      - source

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: "0.76.0"

      - name: Build
        run: cd blog && hugo

      - name: deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./blog/public
          publish_branch: master
          cname: blog.linux.it.teu.ac.jp

ほぼ peaceiris/actions-hugo@v2 にのっている例と同じです.