GitHub Actionsとは?CI/CDワークフローの書き方・料金体系を解説

GitHub Actionsとは?

GitHub Actions(ギットハブ・アクションズ)とは、GitHubに統合されたCI/CD・ワークフロー自動化プラットフォームです。コードのプッシュ、プルリクエスト、Issue作成など、GitHubで発生するイベントをトリガーに、テスト、ビルド、デプロイなどの処理を自動実行できます。

2019年に正式リリースされ、現在ではGitHub上のOSSプロジェクトの大半がCI/CDにGitHub Actionsを採用するほど、急速に普及しています。

GitHub Actionsの基本構造

GitHub Actionsは以下の4つの要素で構成されています。

ワークフロー(Workflow)

自動実行される一連の処理全体を指します。.github/workflows/ディレクトリにYAMLファイルとして定義します。1つのリポジトリに複数のワークフローを持つことが可能です。

イベント(Event)

ワークフローの実行をトリガーする出来事です。pushpull_requestschedule(cron形式での定期実行)、workflow_dispatch(手動実行)など豊富な種類があります。

ジョブ(Job)

ワークフロー内の実行単位です。複数のジョブを並列実行したり、依存関係を指定して直列実行したりできます。各ジョブは独立した仮想マシンまたはコンテナで実行されます。

ステップ(Step)

ジョブ内で順番に実行されるコマンドやアクションです。シェルコマンドを直接記述するか、再利用可能な「アクション(Action)」を呼び出します。

GitHub Actions Marketplace ― 再利用可能なアクション

GitHub Actionsの大きな強みは、Marketplaceで公開されている数千の再利用可能なアクションです。たとえば「Node.jsのセットアップ」「AWSへのデプロイ」「Slackへの通知」など、よくある処理をゼロから書く必要がありません。

公式アクション(actions/checkout、actions/setup-nodeなど)に加えて、コミュニティが作成したサードパーティアクションも豊富です。ただし、サードパーティアクションを使用する際はセキュリティの観点からバージョンをSHAでピン留めすることが推奨されます。

料金体系と無料枠

プラン 無料枠(月) 備考
Free 2,000分 パブリックリポジトリは無制限
Team 3,000分 チーム向け機能付き
Enterprise 50,000分 SAML SSO、監査ログなど

パブリックリポジトリ(OSS)では実行時間が無制限に無料で使えるため、OSSプロジェクトのCI/CDツールとして圧倒的な人気を誇ります。

GitLab CIやJenkinsとの違い

GitLab CI:GitLabに統合されており、オンプレミス運用に強みがあります。GitHub Actionsはクラウド前提でGitHubエコシステムとの親和性が高く、OSSコミュニティでの採用が圧倒的です。

Jenkins:最も歴史が長く、プラグインエコシステムが充実していますが、サーバーの構築・運用が必要です。GitHub Actionsはサーバーレスで運用負荷がゼロに近い点が大きな違いです。

実用的な活用パターン

プルリクエスト時の自動テスト:コードレビュー前にテストを自動実行し、テストが通らないコードのマージをブロック。品質の門番として機能します。

リリースの自動化:タグの作成をトリガーに、ビルド→テスト→パッケージの公開(npm、PyPIなど)を自動実行。人為的なミスを排除できます。

定期的なメンテナンスタスク:依存ライブラリの脆弱性チェック、Staleなイシューの自動クローズなど、定期実行のタスクにも活用できます。

よくある質問(FAQ)

Q. GitHub Actionsでデプロイ先はどこに対応していますか?

A. AWS、GCP、Azure、Vercel、Heroku、GitHub Pagesなど、主要なクラウドサービスやホスティングサービスへのデプロイアクションがMarketplaceで提供されています。

Q. 自社サーバーでジョブを実行できますか?

A. はい。Self-hosted Runnerを自社サーバーにインストールすることで、社内ネットワークのリソースにアクセスしながらジョブを実行できます。

Q. セキュリティ面で気をつけることは?

A. APIキーやパスワードなどの秘密情報は、リポジトリの「Secrets」機能で暗号化して保存し、ワークフロー内で参照します。YAMLファイルにハードコードしてはいけません。

まとめ

GitHub Actionsは、GitHubに統合されたサーバーレスCI/CDプラットフォームです。YAML形式でワークフローを定義し、Marketplaceの豊富なアクションを組み合わせることで、テスト・ビルド・デプロイを自動化できます。パブリックリポジトリでの無制限無料利用が大きな魅力で、OSSプロジェクトでは事実上の標準となっています。

コメント