GitHub Actions ぎっとはぶあくしょんず
CI/CDワークフロー自動化YAMLランナーデプロイ
GitHub Actionsについて教えて
GitHub Actionsとは
GitHub Actionsは、GitHubが提供するCI/CD(継続的インテグレーション/継続的デリバリー)プラットフォームです。コードの変更をトリガーに、テスト・ビルド・デプロイといった一連の作業を自動的に実行できます。設定はすべてYAMLファイルで記述し、リポジトリ内の .github/workflows/ ディレクトリに置くだけで動き始めます。
特筆すべきは、GitHubというコード管理の中心地に直接組み込まれている点です。プルリクエストを出したら自動でテストが走る、mainブランチにマージしたら本番環境へ自動デプロイされる、といった動きを追加のサービス契約なしに実現できます。パブリックリポジトリでは無料で無制限に使える点も普及を後押しした大きな理由です。
開発チームだけでなく、「コードを触らないが、リリースの承認や品質確認に関わる」ビジネスサイドの担当者にとっても重要な概念です。GitHub Actionsが整備されているプロジェクトは、品質管理と出荷プロセスが自動化・可視化されていることを意味するため、発注・委託先を評価する際の指標にもなります。
GitHub Actionsの構成要素
GitHub Actionsは以下の概念で構成されています。全体像を把握しておくと、ベンダーやエンジニアとの会話がスムーズになります。
| 用語 | 意味 | 実務での例え |
|---|---|---|
| ワークフロー(Workflow) | 自動化の全体の流れ。YAMLファイル1つが1ワークフロー | 「出荷チェックリスト」全体 |
| トリガー(on) | ワークフローを起動するきっかけ | 「プルリクエストが来たら」「毎朝9時に」 |
| ジョブ(Job) | ワークフロー内の処理のかたまり。並列実行も可能 | 「テスト担当」「ビルド担当」 |
| ステップ(Step) | ジョブ内の個々の命令 | 「ファイルをコピーする」「コマンドを実行する」 |
| アクション(Action) | 再利用可能な処理のパーツ。Marketplaceで公開・共有される | 「既製品の部品」 |
| ランナー(Runner) | 実際にジョブを実行するサーバー環境 | 「作業を実行するロボットの本体」 |
ワークフローファイルの基本構造
# .github/workflows/ci.yml
name: CI パイプライン # ワークフローの名前
on: # トリガー(いつ動くか)
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test: # ジョブ名
runs-on: ubuntu-latest # ランナーのOS
steps:
- uses: actions/checkout@v4 # リポジトリをチェックアウト
- name: テストを実行
run: npm test # 実際のコマンド
主なトリガー一覧
| トリガー | タイミング | 使いどころ |
|---|---|---|
push | コードをプッシュしたとき | 即時テスト |
pull_request | PRを作成・更新したとき | マージ前チェック |
schedule | cron形式で定期実行 | 夜間バッチ・定期チェック |
workflow_dispatch | 手動で実行ボタンを押したとき | 本番デプロイの承認フロー |
release | リリースを作成したとき | 成果物のパッケージング |
歴史と背景
- 2008年 — GitHub創業。コード管理のデファクトスタンダードへと成長
- 2011年頃 — Jenkins・CircleCI・Travis CIなど外部CI/CDツールが普及。GitHubと連携して使う形が主流だった
- 2018年10月 — GitHub Actionsをβ版として発表。GitHubネイティブのCI/CDとして大きな注目を集める
- 2019年11月 — GitHub Actions 正式リリース(GA)。パブリックリポジトリ無料・プライベートも月2,000分無料の枠を提供
- 2020年〜 — GitHub Marketplace にアクション数が急増。コミュニティによる再利用可能なアクションが1万件以上に
- 2021年 — ARM対応・大容量ランナーの提供など、エンタープライズ向け機能を強化
- 2022年〜現在 — OpenID Connect(OIDC)によるクラウド認証連携、必須ワークフローによるガバナンス機能なども追加。大企業の採用が加速
CI/CDパイプラインの全体像
GitHub Actionsがどのフェーズを担うか、典型的な開発フローで見てみましょう。
他のCI/CDツールとの比較
| 比較軸 | GitHub Actions | CircleCI | Jenkins |
|---|---|---|---|
| 導入のしやすさ | ★★★ YAMLを置くだけ | ★★☆ 外部サービス登録要 | ★☆☆ サーバー構築が必要 |
| GitHubとの統合 | ネイティブ(最高) | API連携 | プラグイン |
| 無料枠 | パブリック無制限・プライベート2,000分/月 | 6,000分/月 | 自前サーバーなら無制限 |
| カスタマイズ性 | Marketplace活用 | Orbs(再利用部品) | プラグイン豊富 |
| ランナーの自由度 | セルフホストも可 | セルフホストも可 | 完全自前管理 |
| エンタープライズ向け | GitHub Enterprise対応 | Enterprise対応 | 最も柔軟 |
ビジネス担当者が押さえておくべきポイント
✅ GitHub Actions が整っているプロジェクト = 品質ゲートが自動化されている
✅ PRごとにテストが走る = 「動作確認してから」を機械が保証してくれる
✅ デプロイが自動化されている = リリース作業のミスや漏れが減る
⚠️ ワークフローの設計が雑 = 自動化の恩恵が得られない(要確認ポイント)
関連する規格・RFC
※ GitHub Actions 自体に対応する公式のIETF RFC・ISO規格は存在しませんが、関連するオープン仕様を参照できます。
| 規格・仕様 | 内容 |
|---|---|
| OpenID Connect Core 1.0 | GitHub ActionsのクラウドへのOIDC認証に使われる仕様 |
| YAML 1.2 | ワークフロー定義ファイルの記述言語の仕様 |
関連用語
- CI/CD — 継続的インテグレーション/継続的デリバリーの総称。GitHub Actionsが実現する自動化の概念
- Git — GitHub Actionsのトリガー元となるバージョン管理システム
- Docker — GitHub Actionsのビルドジョブでよく使われるコンテナ技術
- YAML — GitHub Actionsのワークフロー定義に使うデータ記述言語
- プルリクエスト — GitHub Actionsの代表的なトリガーとなるコードレビューの仕組み
- ランナー — GitHub Actionsのジョブを実際に実行するサーバー環境
- Marketplace — 再利用可能なアクションを公開・共有するGitHubのエコシステム
- デプロイ — 開発したソフトウェアを本番環境へ反映する作業。GitHub Actionsで自動化される代表例