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
name
と run_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/cacheとactions/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
に複数個のファイルを配置した場合の挙動は?