ブログの記事公開をGithub Actionsで自動化しました
April 2, 2020
背景
ブログの記事公開を Github Actions で自動化しました。
Qiita から Github Pages に移ったのはいいのですが、記事を公開する手順が
- Blog の記事を作成する
- Blog 記事のソース用リポジトリに push する
- Hugo コマンドで public フォルダに記事を build する
- public フォルダを Github Pages 設定しているリポジトリに Push
という手順でめんどいものでした。
このへん自動化できないかなと調べたら、Github Actions 使ったやり方がいろいろありそうなので、それ試しました。
https://discourse.gohugo.io/t/deploy-hugo-project-to-github-pages-with-github-actions/20725
上の記事をそのまんまやっただけですが
簡単にまとめると
master ブランチへ push すると、Actions が動いて記事を build してくれます。build した内容をgh-pages
ブランチに Github Pages でそのまま公開できる形で Deploy してくれます。
一応手順は以下です。
手順
Deploy 用に SSH 鍵を設定
build した内容を push するアクセス権を与えるために SSH 鍵を登録しておきます。
$ ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
実行すると以下 2 つの鍵が作成されます。
gh-pages.pub
gh-pages
gh-pages.pub
はアカウントの設定ページ内にNew SSH key
で登録しておきます
https://github.com/settings/keys
gh-pages
は記事のソースを送るリポジトリの設定ページのSecrets
でACTIONS_DEPLOY_KEY
という名前で保存しておきます。
https://github.com/{username}/{repository-name}/settings/secrets
Github Actions の設定
リポジトリ直下の.github/workflows/
に github actions の設定ファイルを作成します
name: github pages
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.2.0
with:
hugo-version: "0.58.3"
- name: Build
run: hugo --gc --minify --cleanDestinationDir
- name: Deploy
uses: peaceiris/actions-gh-pages@v2.4.0
env:
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: ./public
これを commit すると、actions が実行されるはずです。
前の SSH 設定をちゃんとやっていれば、build が成功して、gh-pages
内に hugo が build した内容(public
の中身)が push されているはずです。
Github Pages の設定
最後に Github Pages の設定をします。
https://github.com/{username}/{repository-name}/settings/
の Gihub Pages の設定で、Source
をgh-pages branch
にすれば OK です。
あとは Your site is published at https://....github.io/...
で書かれている URL でブログが公開されます。