第3回まで無料

GitHub Actions 入門コース

最初のワークフローから、YAML・トリガーとジョブ・マトリクス・キャッシュ・Lint・Secrets・Environments・permissions・OIDC・Docker イメージ・リリース・サーバーへのデプロイとロールバック・再利用可能ワークフローまで。全20レッスンで「push からテスト・リリース・デプロイまでを自動で通す」ところまで進みます。実行結果は、act と actionlint で実際に動かしたものを載せています。

カリキュラム

全20レッスンを5つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ ワークフローはブラウザ内で実行できないため、GitHub のリポジトリに push するか、手元に act(Docker の上でワークフローを動かす道具)と actionlint を入れて試してください。act と本物の GitHub で結果が違うところは、本文でそのつど書いています。

Chapter 1 — CI/CD の考え方と最初のワークフロー(第1〜4回)

CI/CD が何を自動にするのかを整理し、最初のワークフローを書いて、actionlint と act で手元で確かめます。YAML の読み方、on・jobs・steps の骨組み、ジョブが動くランナーの性質まで押さえます。

Chapter 2 — テストと品質チェックの自動化(第5〜8回)

同じテストを複数の Python で回し、キャッシュで速くし、Lint と型チェックを CI の関門にします。最後はステータスバッジとジョブサマリーで、結果をひと目で分かる形にします。

Chapter 3 — シークレットと環境(第9〜12回)

パスワードやトークンを安全に渡し、本番へのデプロイに承認の関門を置きます。GITHUB_TOKEN の権限を絞ってコマンド注入を防ぎ、最後は長く生きる鍵を置かずに OIDC でクラウドへ繋ぎます。

Chapter 4 — ビルドとデプロイ(第13〜16回)

Docker イメージを作って ghcr.io に push し、タグからリリースを作ります。最後は練習用サーバーへ SSH でデプロイし、ヘルスチェックに落ちたら前の版へ戻すところまで作ります。

13

Docker イメージを作って ghcr.io に push する

題材のアプリの Docker イメージを GitHub Actions でビルドし、GitHub Container Registry(ghcr.io)に push する。GITHUB_TOKEN と packages: write でのログイン、metadata-action のタグ付け、プルリクエストではビルドだけにする条件、レイヤのキャッシュまで。

🔒 ベーシック
14

タグの push でリリースを作る

v1.2.3 のようなタグを push したら、テストしてパッケージを作り、GitHub のリリースに添付する。タグと pyproject.toml の版がそろっているかの確認、uv build、gh release create と自動のリリースノート、ラベルごとの分類まで。

🔒 ベーシック
15

SSH でサーバーへデプロイする

main に push されたら、テストのあと SSH でサーバーへデプロイする。rsync で送り、docker compose でビルドして入れ替え、healthy になるまで待って疎通を確かめるスクリプトを、手元の Docker の練習用サーバーで実際に動かす。鍵・known_hosts の置き方と concurrency まで。

🔒 ベーシック
16

デプロイの確認とロールバック

テストは通るのに本番でだけ起動しない版を出したとき、自動で直前の版に戻し、ワークフローは失敗として残す。greeter:previous を残してから入れ替える流れを練習用サーバーで確かめ、タグを指定した手動の出し直しまで。

🔒 ベーシック

Chapter 5 — 実践と運用(第17〜20回)

同じ手順を再利用可能ワークフローと複合アクションにまとめ、実行時間とコストを削ります。最後は CI からデプロイまでを 1 本のパイプラインにつなげて、コース全体を振り返ります。

17

再利用可能ワークフローで CI を部品にする

Lint・型チェック・テストの手順を on: workflow_call の再利用可能ワークフローにまとめ、入力を変えて 2 回呼び出す。inputs で版と型チェックの有無を切り替え、outputs でカバレッジを返し、呼び出し先の権限の上限まで。

🔒 ベーシック
18

複合アクションを自作する

どのジョブにもある「uv を入れて、キャッシュつきで依存を入れる」手順を、action.yml 1 つの複合アクションにまとめる。inputs と outputs、checkout の前に使うと見つからない失敗、2026 年に入った $/ の書き方まで。

🔒 ベーシック
19

実行時間とコストを削る

非公開リポジトリの Actions は、ジョブごとに使った時間を 1 分単位に切り上げて数える。ジョブの分け方で月の分数と料金がどう変わるかを見積もり、paths-ignore・concurrency・timeout-minutes などで削る設定と、Dependabot での更新まで。

🔒 ベーシック
20

総まとめ:CI から本番デプロイまで

20 回で作った部品を組み立て、プルリクエストの CI と、タグの push から本番まで届くリリースの 2 本のワークフローにする。権限の絞り方・キャッシュを使わない判断・承認・ロールバック・CODEOWNERS を、act・actionlint・zizmor の結果とともに振り返る。

🔒 ベーシック

全20レッスンを終えたら、次はこのパイプラインで push したイメージを動かす Kubernetes や、OIDC で繋いだ先のサービスを扱う クラウド、CI で回すテストの質を上げる テスト技法 へ。メンバーシップで全コースが解放されます。