Skip to content

toona note

github actions を利用して zola 実行

内容

github actions の学習メモ
github actions で Rust 製 SSG zola を実行して、aws S3 に配置する事が目標。
始めの状態は、gitlab の ci/cd の経験はあるが、github actions についての知識はほぼない状態

Summary

Cue

Note

Scrap

github のci/cdの設定は.github/workflows/main.yml
namerun_name がある。 name はワークフローの名前run_name はワークフローの実行名。
実行名は指定しないとコミットメッセージや PR のタイトルから設定される。


実行環境はjobs.<job名>.runs-onで指定


ワークフローjobを複数個持てる。
gitlabを鑑みるに、フロントエンドとバックエンドで実行内容を分割するとか、コードの変更箇所で実行する内容を変えるとかができるはず。


なぜ今までは aws にアップできていたのだろうか? コマンドがなさそうに思える。
-> github の ubuntu image には aws 等の大手の cli tools が含まれていた。
image の github


jobs.<job名>.steps.uses が何かわからない…
-> ここに記載あり。
既に存在するアクションを利用することができる。


今回は、zola を動かしたいので、zola を動かせる docker imageを利用する。
-> 違うらしい。zola image の利用方法の記述によると

docker run -v$(pwd):/workdir --user=$(id --user):$(id --group) --rm thibaultmorin/zola build

で実行すればよいようだ。
リポジトリの内容を利用するにはチェックアウトが必要らしい。 actions/checkout@v4 の役割を知ることが必要。
-> 実行できた。 おそらく zola build までは通った。


他の job の成果物を利用する方法は? build job と deploy job に分けて、 build job の成果物を利用したい。
-> actions/cacheactions/upload-artifactがあるようだ。
違いは、artifact はワークフロー終了時にファイルが残ること。
ログやテスト結果はこちらに残すのがいいが、ビルドの共有などのワークフロー完了後に不要なものは cache がよい。 参考
cache の上限は 10GB で 1 週間アクセスがない場合に削除されるらしい。参考


zola の出力先を zola build --output-dir で指定して実行。 キャッシュに入ったのではないかと思う。 少なくともエラーは出ない。


deploy job では cache を restore して呼び出す。


料金体系は Free で 2000 min / month


編集中のファイルの syndax の確認方法は?
github で対象ファイルを開き鉛筆マークのボタンから編集可能.
github の linter が働く


.github/workflowsに複数個のファイルを配置した場合の挙動は?

参考