#GitHub Actions

13 件の記事

GitHub Actions 講座 #10 運用パターン — paths フィルタ、concurrency、デバッグ、コスト点検
読了 5分

GitHub Actions 講座 #10 運用パターン — paths フィルタ、concurrency、デバッグ、コスト点検

モノレポで変更のあった部分のワークフローだけを起こす paths フィルタとその限界、重複実行を整理する concurrency グループと cancel-in-progress の判断基準、timeout-minutes を基本の習慣にすべき理由を整理します。デバッグログや再実行といったデバッグの道具から、使用量画面でのコスト点検まで、日々の運用パターンを集めてシリーズを締めくくります。

GitHub Actions 講座 #9 セキュリティ対策 — permissions 最小化、SHA 固定、pull_request_target
読了 5分

GitHub Actions 講座 #9 セキュリティ対策 — permissions 最小化、SHA 固定、pull_request_target

GITHUB_TOKEN のデフォルト権限を読み取りに下げ、ジョブごとに必要な権限だけを開く最小化から始めて、タグが可変であることから生まれるサードパーティアクションのサプライチェーンリスクと SHA 固定、Dependabot 自動更新の組み合わせを扱います。シークレットが漏れる代表的なルートである pull_request_target の罠と、タイトルやブランチ名の展開が生むスクリプトインジェクションの防御まで整理します。

GitHub Actions 講座 #8 セルフホストランナー — 導入基準、登録、セキュリティ原則
読了 5分

GitHub Actions 講座 #8 セルフホストランナー — 導入基準、登録、セキュリティ原則

ホストランナーでは足りなくなる 3 つの状況、内部ネットワークへのアクセス、コスト、特殊ハードウェアを導入基準として整理し、ランナーの登録手順とラベルでジョブをルーティングする方法を扱います。パブリックリポジトリでセルフホストランナーを使ってはいけない理由とエフェメラルランナーの運用原則、Kubernetes でランナーを自動スケールする actions-runner-controller まで押さえます。

GitHub Actions 講座 #7 AWS デプロイと OIDC — アクセスキーなしの資格情報
読了 5分

GitHub Actions 講座 #7 AWS デプロイと OIDC — アクセスキーなしの資格情報

アクセスキーを secrets に保存する方式が抱える流出とローテーションの問題を整理し、ワークフローが短期トークンで AWS のロールを引き受ける OIDC 連携の動作原理を、トークン交換の流れで説明します。AWS 側の信頼構成と sub クレームの制限、configure-aws-credentials アクションと id-token 権限の設定、S3 静的サイトのデプロイ例まで完成させ、デプロイパイプラインの資格情報問題を片付けます。

GitHub Actions 講座 #6 Docker ビルドと GHCR プッシュ — タグ戦略とビルドキャッシュ
読了 4分

GitHub Actions 講座 #6 Docker ビルドと GHCR プッシュ — タグ戦略とビルドキャッシュ

コンテナイメージをビルドして GitHub Container Registry にプッシュする標準パイプラインを組み立てます。GITHUB_TOKEN だけで完了する GHCR ログイン、metadata-action がイベントに応じてタグを自動決定する仕組み、build-push-action と gha キャッシュでビルド時間を短縮する設定まで扱い、ブランチ・タグ・SHA 別のタグ戦略の実務的な基本形を整理します。

GitHub Actions 講座 #5 再利用 — composite action と reusable workflow
読了 4分

GitHub Actions 講座 #5 再利用 — composite action と reusable workflow

複数のワークフローとリポジトリに繰り返されるステップの塊を部品にする 2 つの方法を扱います。ステップのまとまりを包む composite action の action.yml の書き方、ジョブ単位をまるごと呼び出す reusable workflow の workflow_call と inputs、secrets の渡し方、2 つの方式の選択基準と、組織レベルで共有リポジトリに標準化するパターンまで整理します。

GitHub Actions 講座 #4 マトリックス・キャッシュ・アーティファクト — 組み合わせ実行と時間・コスト削減
読了 5分

GitHub Actions 講座 #4 マトリックス・キャッシュ・アーティファクト — 組み合わせ実行と時間・コスト削減

1 つのジョブ定義を複数バージョンと OS の組み合わせに増やすマトリックス戦略を include、exclude、fail-fast オプションと合わせて扱い、依存関係のインストール時間を減らす actions/cache の key と restore-keys の設計、setup 系アクションの内蔵キャッシュオプションを整理します。ジョブ間でファイルを渡すアーティファクトのアップロードとダウンロード、保存期間の設定まで、実行時間とランナーのコストを減らす観点でまとめます。

GitHub Actions 講座 #3 シークレット・変数・環境 — secrets と vars、environment の承認ゲート
読了 5分

GitHub Actions 講座 #3 シークレット・変数・環境 — secrets と vars、environment の承認ゲート

ワークフローに秘密の値と設定値を入れる 2 つの通路である secrets と vars の使い分けの基準と、組織、リポジトリ、environment という 3 階層の優先順位を整理します。ログのマスキングが守ってくれるものと過信してはいけない理由、environment の保護ルールでデプロイの前に承認者と待機時間を設ける方法、自動発行される GITHUB_TOKEN の正体まで扱います。

GitHub Actions 講座 #2 文法の核心 — コンテキストと式、if 条件、値の受け渡し
読了 5分

GitHub Actions 講座 #2 文法の核心 — コンテキストと式、if 条件、値の受け渡し

ワークフロー YAML の文法を体系的に押さえます。github、env、steps といったコンテキストと式の文法、if 条件と success・failure・always 関数でステップを選んで実行する方法を扱い、GITHUB_OUTPUT でステップ間に値を渡す方法と、needs・outputs でジョブ間の順序とデータをつなぐ方法まで整理します。

GitHub Actions 講座 #1 ワークフローの構造 — イベント、ジョブ、ランナー、初めての実行
読了 5分

GitHub Actions 講座 #1 ワークフローの構造 — イベント、ジョブ、ランナー、初めての実行

プッシュのたびに手作業で繰り返していたテストとビルドを自動化する GitHub Actions の骨格をつかみます。ワークフロー、イベント、ジョブ、ステップ、ランナーという 5 つの概念の関係を整理し、Python のテストを実行する最初のワークフローを書いて、Actions タブでの結果の読み方とステータスバッジまで扱います。トリガーイベントの種類とランナーの無料枠も一緒に押さえます。

K8s 実戦 #4 CI/CD パイプライン — GitHub Actions / ECR / ArgoCD
読了 8分

K8s 実戦 #4 CI/CD パイプライン — GitHub Actions / ECR / ArgoCD

[#3](/ja/posts/k8s-practice-3) まで作った myshop-api は新しいバージョンが入ってくる過程が人の手に縛られています。この記事ではその過程を自動化します。GitHub Actions で OIDC を使って静的キーなしに AWS ECR にコンテナイメージを push し、マニフェスト repo の Helm values を自動 commit して [上級 #6](/ja/posts/k8s-advanced-6) で扱った ArgoCD がその変更を検知してクラスタに同期する流れをまとめます。PR 承認ゲート、dev/prod 分岐、カナリーデプロイまで一緒に押さえます。

AWS実践 #3 CI/CD — GitHub Actions + ECR + ECS
読了 7分

AWS実践 #3 CI/CD — GitHub Actions + ECR + ECS

OIDC でアクセスキーなしの GitHub Actions、ECR push、Task Definition の自動更新、ECS Service のローリングデプロイ、deployment circuit breaker と自動ロールバック、CodeDeploy blue/green まで触れて — 1 回の git push で完結するデプロイの流れ。