最初のワークフローから、YAML・トリガーとジョブ・マトリクス・キャッシュ・Lint・Secrets・Environments・permissions・OIDC・Docker イメージ・リリース・サーバーへのデプロイとロールバック・再利用可能ワークフローまで。全20レッスンで「push からテスト・リリース・デプロイまでを自動で通す」ところまで進みます。実行結果は、act と actionlint で実際に動かしたものを載せています。
全20レッスンを5つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ ワークフローはブラウザ内で実行できないため、GitHub のリポジトリに push するか、手元に act(Docker の上でワークフローを動かす道具)と actionlint を入れて試してください。act と本物の GitHub で結果が違うところは、本文でそのつど書いています。
CI/CD が何を自動にするのかを整理し、最初のワークフローを書いて、actionlint と act で手元で確かめます。YAML の読み方、on・jobs・steps の骨組み、ジョブが動くランナーの性質まで押さえます。
同じテストを複数の Python で回し、キャッシュで速くし、Lint と型チェックを CI の関門にします。最後はステータスバッジとジョブサマリーで、結果をひと目で分かる形にします。
パスワードやトークンを安全に渡し、本番へのデプロイに承認の関門を置きます。GITHUB_TOKEN の権限を絞ってコマンド注入を防ぎ、最後は長く生きる鍵を置かずに OIDC でクラウドへ繋ぎます。
Docker イメージを作って ghcr.io に push し、タグからリリースを作ります。最後は練習用サーバーへ SSH でデプロイし、ヘルスチェックに落ちたら前の版へ戻すところまで作ります。
同じ手順を再利用可能ワークフローと複合アクションにまとめ、実行時間とコストを削ります。最後は CI からデプロイまでを 1 本のパイプラインにつなげて、コース全体を振り返ります。
全20レッスンを終えたら、次はこのパイプラインで push したイメージを動かす Kubernetes や、OIDC で繋いだ先のサービスを扱う クラウド、CI で回すテストの質を上げる テスト技法 へ。メンバーシップで全コースが解放されます。