Open3
mdBook - GitHub Actions - GitHub Pages:静的サイトジェネレータとホスティングサービス
ホスティング
GitHub Pagesに自動でデプロイするにはGitHub Actionsを使う。
- Hugo、mdBookなどとGitHub Pagesを使うケースのActionsを制作された方の記事
- 正式リリースされた2020年当時の非公式解説
- mdBookでの"Automatic Deployment"の公式解説
peaceiris/actions-gh-pages
からの乗り換え
生のファイルと生成サイトとの関係
GitHub Actionsは、workflowが表現されたファイルのon
の設定によってトリガーされる。ほかにも、GitHub Actionsの記述にはGitHub Actions Heroがわかりやすい。
main.yml
name: CI/CD
on:
push:
branches:
- master
paths:
- "src/**"
- "book.toml"
「jobがstepごとにGitHubのサーバで動作する」。このとき、従来はたとえばデプロイ先のリポジトリのブランチを指定しつつpeaceiris/actions-gh-pages
をuses
で呼び出して(デプロイしてもらっていた。ここを公式のactions/upload-pages-artifact
やactions/deploy-pages
で代替できるようになった、というのが先の節に貼った記事の内容。
また、mdbook build
すら省略して、GitHub Actionsにビルドを任せるということもできる:peaceiris/actions-mdbook。
mdBook
build
mdbook build
はプロジェクトフォルダで実行されなければならない。
➜ workflows mdbook build
2022-11-23 12:30:43 [ERROR] (mdbook::utils): Error: Couldn't open SUMMARY.md in ".../[プロジェクトフォルダ]/.github/workflows/src" directory
2022-11-23 12:30:43 [ERROR] (mdbook::utils): Caused By: No such file or directory (os error 2)
➜ workflows cd ..
➜ .github cd ..
➜ [プロジェクトフォルダ] mdbook build
2022-11-23 12:32:44 [INFO] (mdbook::book): Book building has started
2022-11-23 12:32:44 [INFO] (mdbook::book): Running the html backendnn
buildが成功するとbook/以下にウェブサイトの実装が生成される。例えば生のmdbook構成のほうのリポジトリにこれをpushするタイミングで、Pagesを設定したリポジトリにGitHub Actionsによる更新をかければいい。