GitHub Actions / CI/CD
このサイトは、GitHub Actions を使った CI/CD の仕組みで自動的に公開されています。このテーマでは、サイト自体を教材にして、CI/CD の考え方と GitHub Actions の書き方を学びます。
CI/CD とは
| 用語 | 正式名称 | ひとことで言うと |
|---|---|---|
| CI | Continuous Integration(継続的インテグレーション) | 変更のたびに、自動でビルドやテストを行い、壊れていないかを確かめること |
| CD | Continuous Delivery / Continuous Deployment(継続的デリバリー / デプロイ) | 確かめた成果物を、自動で公開・配布できる状態にすること |
手作業で「ビルドして、確認して、アップロードして……」と繰り返す代わりに、決まった手順をコンピューターに任せることで、ミスを減らし、何度でも同じ結果を再現できるようにするのが目的です。
学習ノート
- このサイトが公開されるまで:GitHub Pages への自動デプロイの仕組みを、ワークフローファイルを1行ずつ読みながら解説します。
- Dependabot を導入して脆弱性を直すまで:依存パッケージを見張る Dependabot の導入と、自動では直せなかった脆弱性の修正、AI と進める中で起きた認識のずれと対処をまとめます。
- ブランチ保護(ルールセット)で main を守る:
mainに入る変更に、GitHub がルールを強制する仕組みの設定手順と結果をまとめます。 - PR の承認の仕組みと、AI が作る PR:承認 0 人の意味、承認者がいなくなった場合の扱い、AI が作る PR に GitHub が求める追加の承認をまとめます。
- Python のテストと lint を CI で自動実行する:PR のたびに、3 つの OS と 2 つの Python バージョンでテストを動かす仕組みと、必須チェックに登録するときの注意点をまとめます。
- 通信するプログラムを、テストしやすく作る:通信する部分と計算する部分を分ける設計、偽の API を使ったテスト、OS の違いへの対処をまとめます。
このテーマで扱う予定の内容
- スケジュール実行(cron)によるデータの定期更新
- AI(Claude Code など)を CI に組み込む方法