Github ActionsワークフローとHugoのアップデート
March 22, 2020Github 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が壊れたので直した。
Updated: March 16, 2021