Orimeオリメ

Github ActionsワークフローとHugoのアップデート

March 22, 2020

Github Actions

正式リリースされたGithub Actions、βリリース時からのフォーマット変更に対応していなかったので書き直した。

.github/workflow/main.workflow #書き直したGithub Actionsワークフローファイル
hugo/ #hugoプロジェクト。テーマやビルド前のMarkdownファイルなど一式入ってる
docs/ #Github Pagesの公開ディレクトリ

Github Pagesのmasterブランチdocs/フォルダを公開するパターンを利用しているので、ワークフローも、hugo/フォルダにあるファイルをビルドしてdocs/に反映、公開するようになってる。

name: github pages

# masterへのpushトリガーで走らせる
on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      # テーマは別リポジトリで管理しているので、個別にチェックアウト
      - name: Checkout submodules
        shell: bash
        run: |
          auth_header="$(git config --local --get http.https://github.com/.extraheader)"
          git submodule sync --recursive
          git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1

      # Hugoのインストール
      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: '0.67.1'
          extended: true

      # hugo/フォルダに移動して、Hugoビルド
      - name: Build hugo
        run: |
          cd hugo
          hugo --minify
      
      # Gitの設定、変更があればコミット
      - name: Commit changes
        run: |
          echo "===== Update Git Config ====="
          git config --global user.email "$EMAIL" 
          git config --global user.name "$GITHUB_ACTOR"
          echo "===== Detect File Changes ====="
          # もし変更がなかったら、0を返して終了
          case "`git status -s`" in
              "")
              echo "No change."
              exit 0
              ;;
              *)
              echo "There are some changes."
          esac
          echo "===== Git Push =====" 
          git add -A && git commit -a -m '[Action] Build by GitHub Action'

      # 変更があればPush
      - name: Push changes
        uses: ad-m/github-push-action@v0.5.0
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

なおこのワークフロー、プライベートリポジトリでも動作するので、ブログのリポジトリはプライベートに戻した。

これにより、ブラウザでGithubブログプロジェクトを開き、hugo/content/post/**.mdを追加してPushすればブログ更新されるようになった。

Hugo バージョンアップ

しばらくブログ触っていないない間にHugoのバージョンアップがあったので、最新のv0.67.1に上げた。

HugoのAPIは一緒なのに返す内容が変わっていたりして、トップページの記事リスト表示とRSSが壊れたので直した。

development

Updated: March 16, 2021