MENU

GitHub Actions — リポジトリに統合された宣言型CI/CDサービス

GitHub Actions アイキャッチ
GitHub Actions

GitHub Actionsは、GitHub社が2018年10月のGitHub Universeで発表し、2019年11月に一般提供を開始したリポジトリ統合型のCI/CDサービスです。リポジトリ内の .github/workflows/ 配下に置いたYAMLファイルを起点に、プッシュ・プルリクエスト・Issueコメント・スケジュール・外部Webhookなど様々なイベントをトリガーとしてジョブを起動できます。2018年6月にMicrosoftがGitHubを75億ドルで買収した直後の戦略製品として位置づけられ、無料枠と豊富な「アクション」マーケットプレイスでCI市場の主役に躍り出ました。

目次

この記事の目次

  1. ワークフロー・ジョブ・ステップの三層
  2. Microsoft買収から急成長へ
  3. 現場での主な使い方
  4. 他CIとの比較と選びどころ
  5. まとめ

ワークフロー・ジョブ・ステップの三層

ワークフロー・ジョブ・ステップの三層

GitHub Actionsの基本構造は三層で、最上位の「ワークフロー」は1つのYAMLファイルに対応し、on: 句で起動条件を定義します。その内部に複数の「ジョブ」を並列または依存関係付きで配置でき、各ジョブは runs-on で指定したランナー(Ubuntu・Windows・macOSのいずれか、もしくはセルフホスト)上の独立したVMで実行されます。さらにジョブ内部には複数の「ステップ」が順次実行され、ステップはシェルコマンドか再利用可能な「アクション」のどちらかを呼び出す仕組みです。

「アクション」はDockerコンテナまたはJavaScript実装の再利用可能ユニットで、公式の actions/checkout actions/setup-node などに加え、マーケットプレイスには2万を超えるサードパーティ製アクションが登録されています。チェックアウト・ビルド・テスト・デプロイといった典型処理を uses: owner/repo@version の一行で組み立てられるため、yml数十行で実用的なパイプラインが完成する手軽さがGitHub Actions最大の魅力になっています。

Microsoft買収から急成長へ

Microsoft買収から急成長へ

GitHub Actionsは、2018年10月にCEOのナット・フリードマンがGitHub Universeで発表しました。当初はHCLという独自構文を採用していましたが、ベータ期間中のフィードバックを受け、2019年8月のリニューアルでYAMLベースに刷新。同年11月の一般提供開始時には、AzureパイプラインズやTravis CIの利用者が雪崩を打って移行する大きな潮流が生まれました。

Microsoft傘下となった効果も大きく、Azure DevOpsチームが培ったエージェント基盤やAzure Pipelinesのノウハウが投入され、Linuxジョブ無制限・パブリックリポジトリ完全無料という攻めの価格設定が可能になりました。2022年にはGPU搭載や64コアといった大規模ランナーが追加され、個人開発者から大企業まで、リポジトリと同じ画面でCI/CDを設定できる体験を提供しています。

現場での主な使い方

現場での主な使い方

もっとも基本的な使い方は、プルリクエストが作られたり既存PRに新しいコミットが押されたりするたびに、lint・型チェック・単体テストを並列で走らせ、結果をPR画面のチェック欄に表示する用途です。失敗時はマージボタンが赤くなりレビュアーにも一目で分かるため、コードレビューの前段で壊れた変更を弾く「人の目に頼らない品質ゲート」として機能します。matrix構文を使えばNode 18/20/22やPython 3.10/3.11/3.12のような複数版を一括テストできるのも便利です。

デプロイ用途では、main ブランチへのマージをトリガーにAWS・GCP・Cloudflare Pages・Vercelなどへ成果物を送る運用が定番です。OIDC連携を使えば長期のクラウド認証情報をシークレットに置く必要がなく、ジョブ実行時だけ一時トークンを発行できるため、セキュリティ面でも他CIに先行しています。スケジュール起動(cron書式)で夜間バッチを回したり、リリースタグ作成で配布物をビルドしてReleasesに添付したりと、リポジトリ周辺の自動化を一手に引き受けるサービスです。

他CIとの比較と選びどころ

他CIとの比較と選びどころ

競合のGitLab CI/CDは同社GitLabに同梱されており、リポジトリ・CI・コンテナレジストリ・プロジェクト管理が一体提供される一体感が強みです。CircleCIは並列ジョブ数の上限が高く巨大なテストスイートを抱えるエンタープライズに支持されています。一方JenkinsはOSSの自己ホスト型として依然根強い人気があり、社内ネットワーク内でのみ動かしたい組織や、特殊なハードウェアが必要な場面では選ばれ続けています。

GitHub Actionsを選ぶ判断軸は「リポジトリがGitHubにあるか」「公開リポジトリで完全無料を享受したいか」「マーケットプレイスのアクションを多用するか」の3点です。逆にKubernetesに対する精緻なプロモーション制御や、複雑なクラウドリソース管理を行いたい場合はArgo CDやSpinnakerと組み合わせる構成が一般的です。CI部分はActionsで賄い、デプロイは専用ツールに渡すハイブリッド構成が、2020年代後半の事実上の標準になりつつあります。

まとめ

GitHub Actionsは、リポジトリと同じ画面でCI/CDを設定できる手軽さと、Microsoft資本による無料枠の太さで、CI市場の主役に躍り出たサービスです。OSS・スタートアップから大企業まで、ymlを一枚置くだけで実用的なパイプラインが完成する第一選択肢として、今後も標準的な存在であり続けるでしょう。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次