2020/09/09 このエントリーをはてなブックマークに追加 はてなブックマーク - GitHub Actionsでgit pushにフックしてHugoドキュメントをGitHub Pagesにビルド・デプロイする

GitHub Actionsでgit pushにフックしてHugoドキュメントをGitHub Pagesにビルド・デプロイする

カテゴリ:


タイトルのまんまなんですが、一応備忘録として残しておきます。





  • リポジトリにおもむろに .github/workflowsというディレクトリを作ります
  • このディレクトリ内に任意の名前のymlを追加するとGitHub Actionsのタスクスクリプトとして認識されるはずです

GitHub Actionsにはマーケットプレースというやつがあります。これで、欲しいものをちょいちょいと選べるのと、GitHubのサイトとフレンドリーでポチポチと進めていけるところがGitHub Actionsのちょっとしたいいところですね。ymlで病むることもあまりない。

今回は

を使いました。頑張る必要もなく、これ見つけた時点で大体イケるだろうなってなりました。


ymlに書いた通りなので端折りたいとこですが、一応書いてみると

  • on で起動タイミングを定義
    • 今回はpushがトリガー
  • jobsでjobとして動いて欲しいものをそれぞれ書いていく
    • 今回はactions/checkoutとactions-hugoとactions-gh-pagesが動いてくれればok

といった感じです。


ほぼハマるところはないんですが、
ビルド側に秘密鍵、デプロイ側にデプロイキーとして公開鍵を設定してあげる必要があります。
(secrets.ACTIONS_DEPLOY_KEY という形で記述されてるあたりの話)

ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
って感じで秘密鍵と公開鍵の組み合わせを作ります。

ビルド側、今回でいうと https://github.com/yyYank/memo に秘密鍵を設定します
リポジトリのページのSettings > Secretsで「New Secret」 をポチッとし、 ACTIONS_DEPLOY_KEYという名前にして cat gh-pages | pbcopy の内容を貼り付けて保存してください。

デプロイ側、今回でいうと https://github.com/yyYank/yyYank.github.io に公開鍵を設定します。 リポジトリのページのSettings > Deploy keysで「Add deploy key」をポチッとし、 (名前適当でいいと思うんですが) Public key of ACTIONS_DEPLOY_KEYという名前にして cat gh-pages.pub | pbcopy の内容を貼り付けて保存してください。この際に Allow write access にチェックを入れるのが必須です。デプロイ先に書き込めないからです。


ということで、めでたくhugoのドキュメント書いたら自動でデプロイしてgithub.io上で見れるようになるやーつが完成しました。

結構前にこれいじって作ったんですが、備忘録としてブログ書いておきました。

当時のツイート




0 件のコメント:

コメントを投稿

GA