東京エレクトロンデバイス株式会社

Microsoft Azureコラム

2026/04/07

Writer:

GitHub Actionsとは?CI/CDを自動化する基本から実践まで徹底解説

開発ワークフローにおけるビルド、テスト、デプロイといった反復的なタスクの自動化は、生産性向上の鍵となります。GitHub Actionsは、GitHubリポジトリ上でCI/CDをはじめとする開発ワークフローを直接自動化できるプラットフォームです。


本記事では、このGitHub Actionsの基本的な仕組みを支える5つの主要コンポーネント(ワークフロー、イベント、ジョブ、ステップ、ランナー)から、YAMLによる具体的なワークフローの書き方、そしてCI/CDにとどまらない多様な活用事例までを網羅的に解説します。


開発プロセスの自動化に関心のある方や、GitHub Actionsの導入を検討している方にとって、本記事がその第一歩となれば幸いです。


東京エレクトロンデバイスは、企業のGitHubおよびGitHub Copilotの導入支援、請求、契約をワンストップでサポートしています。

お気軽にご相談ください。

お問い合わせはこちら

GitHub Actionsとは?開発の自動化を推進するワークフロープラットフォーム

GitHub Actions は、GitHubリポジトリ上でCI/CD(継続的インテグレーション/継続的デリバリー/デプロイ)をはじめとする開発ワークフローを直接自動化できるプラットフォームです。

コードのプッシュやプルリクエストなどのイベント、あるいはスケジュールを契機として、あらかじめ定義した処理(ワークフロー)が自動実行され、手作業の定型業務を削減し、開発者の生産性向上に寄与します。


GitHub Actions は、ワークフロー/イベント/ジョブ/アクション/ランナーといった主要コンポーネントの組み合わせで構成されます。これにより、ビルド・テスト・デプロイといったCI/CDはもちろん、Issueへのラベル自動付与や定期レポートの生成など、リポジトリ運用に関わる多様なタスクまで自動化できます。

Github Actionsとは.png

GitHub Actionsとは(参考:GitHub


GitHub Actionsで用いられるCI/CDとは?

GitHub Actionsを理解するうえで、まず押さえておくべき基本概念に「CI/CD」があります。これはGitHub Actionsが実現する開発手法の基盤となる考え方となっています。

以下にその詳細をご説明します。


CI(継続的インテグレーション)とは?

CI(Continuous Integration)とは、開発者が自身のコード変更を頻繁に共有リポジトリにマージし、その都度ビルドとテストを自動で実行する開発手法です。

コードをコミットするたびに自動でテストが走るため、バグや問題を早期に発見できます。


CD(継続的デリバリー/デプロイ)とは?

CDは、CIのプロセスを経て品質が保証されたコードを、本番環境などのリリース先へ自動で反映させる手法です。CDには、文脈によって二つの意味合いで使われます。


  • 継続的デリバリー (Continuous Delivery):本番環境へのリリース準備までを自動化し、最終的なデプロイの実行は手動で行います。
  • 継続的デプロイ (Continuous Deployment):テストを通過したコードを、人手を介さずに完全に自動で本番環境へリリースします。


GitHub Actionsは、これら両方のシナリオに柔軟に対応できるワークフローを構築できるため、開発チームが迅速かつ安全にユーザーへ価値を届けることを可能にします。


GitHub Actionsの仕組み:5つの主要コンポーネント

GitHub Actionsは実際にどのように動作するのでしょうか。その動作を支える5つのコアコンポーネントの役割を解説します。

以下の要素が連携し、自動化のプロセスを形成します。

GitHub Actionsのコンポーネント.png

GitHub Actionsのコンポーネント(参考:GitHub

1. ワークフロー (Workflow)

一連の自動化プロセス全体を定義する最上位の単位です。リポジトリの .github/workflows ディレクトリに配置された YAML ファイルによって定義されます。1つのリポジトリに複数のワークフローを持たせ、それぞれ異なるタスクを実行させることが可能です。

2. イベント (Event)

ワークフローの実行を開始する「きっかけ(トリガー)」です。 push や pull_request といったコード変更だけでなく、 Issue の作成、手動実行、定時実行(スケジュール)など、多様なイベントが存在します。

3. ジョブ (Job)

ワークフローを構成する個々の実行単位で、一連のステップの集まりです。ジョブはデフォルトで並列実行されますが、 needs キーで依存関係を定義し、特定のジョブの完了を待ってから実行させることも可能です。

4. ステップ (Step) と アクション (Action)

  • ステップ (Step): ジョブの中で順番に実行される個々のタスクです。シェルコマンドを実行するか、後述のアクションを呼び出します。
  • アクション (Action): 特定のタスクを実行する再利用可能なコードの部品です。「リポジトリをチェックアウトする」「特定の言語環境をセットアップする」といった 定型処理を、usesキーで簡単に呼び出せます。自作も可能ですが、多くは GitHub Marketplace で公開されています。

5. ランナー (Runner)

ジョブを実際に実行するサーバー(仮想マシン)です。各ランナーは一度に1つのジョブを実行します。

  • GitHubホステッドランナー:GitHub が提供するクラウド上のランナーで、Ubuntu, Windows, macOS が利用可能です。
  • セルフホステッドランナー:ユーザーが自前で用意・管理するランナーで、独自の環境やスペックが必要な場合に使用します。


GitHub Actionsの使い方

主要なコンポーネントを理解した上で、実際にGitHub Actionsを使用する一連の流れをステップ形式で解説します。

ステップ1:Actionsタブへ移動

リポジトリ上部の「Actions」タブを開きます。用意されたテンプレートを利用することも可能ですが、本記事では “Set up a workflow yourself” を選択し、空のワークフローから作成します。ステップ1 (1).png

ステップ1

ステップ2:ファイルを作成

エディタが開いたら、ファイルは .github/workflows/main.yml のように、必ずリポジトリ直下の .github/workflows/ 配下へ保存します。併せて、YAMLの先頭で指定する ワークフロー名(name:) は、後から見ても意図が分かる分かりやすい名称にします。

ステップ2 (1).png

ステップ2

ステップ3:コミット/プルリクエストの作成

Commit changes をクリックしてコミットを作成します。既定ブランチ(例:main)へ直接コミットするか、新規ブランチを切ってプルリクエスト(PR)を作成します。

ステップ3 (1).png

ステップ3

ステップ4:実行とステータス確認

ワークフローの on: で定義したイベント(例:push や pull_request)が発生すると、自動的に実行されます。実行状況は Actionsタブ、または PR 画面の Checks からステータスとログを確認できます。

ステップ4 (1).png

ステップ4


GitHub Actionsのワークフローの基本的な書き方(YAML)

GitHub Actions のワークフローは、 YAML という形式のファイルで定義します。ここでは、ワークフローを構成する最も基本的なキーワードとその書き方を解説します。


on: ワークフローを開始するトリガー

push や pull_request など、どのようなイベントでワークフローを実行するかを定義します。


on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]


jobs: 実行する一連のジョブ

ワークフロー内で実行される一つ以上のジョブを定義します。


jobs:
build:
# ... ジョブの詳細 ...
test:
# ... 別のジョブの詳細 ...


runs-on: ジョブを実行するランナーの指定

ubuntu-latest や windows-latest など、ジョブをどのOSのランナーで実行するかを指定します。-latestタグは例えば以下のようなバージョンを指しますが、安定した運用のためには ubuntu-22.04 のようにバージョンを固定(ピン止め)することが推奨されます。

  • ubuntu-latest → ubuntu-24.04
  • windows-latest → windows-2022
  • macos-latest → macos-15 (arm64)

runs-on: ubuntu-latest


steps: ジョブ内の各ステップ

ジョブの中で順番に実行される個々のタスクを定義します。


steps:
- name: Step 1
# ...
- name: Step 2
# ...


uses: 再利用可能なアクションの指定

actions/checkout@v5 のように、GitHub Marketplace で公開されているアクションを呼び出します。バージョンを指定することで、予期せぬ変更を防ぎます。


- uses: actions/checkout@v5


run: コマンドの直接実行

npm install や make test など、特定のシェルコマンドを直接実行します。


- name: Install dependencies
run: npm ci


【実践例】CIワークフローを構築する

ここまでの基本構文を踏まえ、具体的なCIワークフローを作成してみましょう。ここでは、Push または Pull Request が作成された際に、自動でテストとビルドを実行するワークフローの例を紹介します。

name: Simple CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build-and-test:
runs-on: ubuntu-latest

steps:
- name: コードをチェックアウト
uses: actions/checkout@v5

- name: Node.jsをセットアップ
uses: actions/setup-node@v4
with:
node-version: 20

- name: 依存関係をインストール
run: npm install

- name: ビルド
run: npm run build

- name: テスト実行
run: npm test


Run結果.png

Run結果


実際の活用のポイント

上記のようにワークフローを作成したら効率化・高度化することも大切です。以下によく使用される便利な機能やポイントをご紹介します。


  • マトリックス戦略(strategy: matrix)で複数環境のテストを並列化する
    OSや言語バージョン、その他の変数の組み合わせで同じジョブを並列実行できます。これにより、多様な環境での動作保証を効率的に行えます。
  • シークレット(secrets)でAPIキーを安全に扱う
    デプロイ鍵やAPIトークンなどの機密情報を暗号化して保存し、ワークフロー内では ${{ secrets.NAME }} で参照します。コードやログに平文を残さず、安全に自動化を実行できます。
  • ジョブ間でファイルを受け渡すアーティファクト
    actions/upload-artifact と actions/download-artifact を使うと、同一ワークフロー実行内のジョブ間でファイルを共有できます。たとえば、ビルドジョブで生成した実行ファイルを成果物としてアップロードし、後続のデプロイジョブでダウンロードしてリリース処理に利用できます。


GitHub Actionsのユースケース

GitHub Actionsは、単なるCI/CDツールにとどまらず、開発・運用・品質管理・AI連携を一体化できる自動化プラットフォームとして活用されています。
ここでは、現場でみられる主なユースケースを紹介します。

1. 開発プロセスの自動化(CI/CD)

最も基本的なユースケースは、ソースコードの変更から本番リリースまでを自動化することです。開発者がコードを更新すると、自動でビルド・テスト・デプロイまでが順番に実行され、人手を介さずに高品質なリリースを高速に行うことができます。


たとえば、アプリの修正をプッシュすると自動でテストが走り、問題がなければステージング環境や本番サーバーにデプロイされる。そのような「一連の流れ」をワークフローとして定義できるのがGitHub Actionsの強みです。


2. コードレビューやリリース管理の自動化

開発チームが増えると、プルリクエスト(PR)のレビューやリリース作業が負担になります。
GitHub Actionsを使えば、以下のような自動化が可能です。

  • PRが作成されたら自動で担当者をアサイン
  • コード規約に反している箇所を検出してコメント
  • リリースノートやバージョン番号を自動生成
  • テストを通過したPRだけを本番ブランチにマージ

こうした仕組みによって、人間は「判断」だけに集中し、手作業の管理コストを削減できます。


3. AIとの連携(GitHub Copilot / LLM活用)

近年では、GitHub ActionsをAIと組み合わせて使うケースも急速に増えています。
特に注目されているのが、GitHub Copilotとの統合です。

GitHub Actionsを用いてGitHub Copilotが動作.png

GitHub Actionsを用いてGitHub Copilotを動作


GitHub Copilotとの連携例

  • プルリクエストの差分をAIが自動で解析し、「修正提案」や「改善コメント」を生成
  • Issueの内容をもとに、AIが自動でタスク分解してPRテンプレートを作成
  • コードの説明ドキュメント(READMEやコメント)をAIが自動生成


これにより、レビュー作業やドキュメント整備といった“時間はかかるが価値は低い”作業を自動化できます。

▶︎GitHub Copilotとは?AIペアプログラミングで開発効率を高める機能と使い方を解説


LLMとの連携例

GitHub Actionsの中でOpenAIやAzure OpenAIなどのAPIを呼び出し、テキスト生成・要約・コード評価などを行う仕組みも構築可能です。
たとえば、リリース時にAIが変更内容を分析して「リリース概要文」や「変更のリスク評価」を自動で生成する、といった高度な活用も可能です。


4. 運用・監視・定期実行タスクの自動化

GitHub Actionsは「開発」だけでなく、「運用」や「保守」にも応用できます。
毎日の定期処理や監視を自動で実行させることで、システムの安定性を高められます。

  • 毎朝、依存パッケージの更新状況をチェックし、更新が必要な場合は自動でPRを作成
  • 週に一度、AIが過去のエラーログを分析してレポートを作成
  • 毎月、WebサイトのSEOデータやアクセス解析を集計してMicrosoft Teamsへ自動通知

このようにGitHub Actionsを「業務のバッチ処理エンジン」として利用することで、クラウド運用の自動化基盤としても活躍します。


5. チーム開発とナレッジ共有の強化

GitHub Actionsは、チーム全体の生産性を底上げする仕組みとしても重要です。
たとえば以下のような使い方があります。

  • コードがレビュー済み・承認済みになったタイミングでMicrosoft Teamsで通知を送る
  • ドキュメント変更を検知して自動でプレビュー環境を立ち上げる
  • プロジェクト全体の進捗や成果物を自動で可視化し、レポート化


結果として、「誰が何をしているのか」や「どの開発がどこまで進んでいるのか」が明確になり、チーム間の連携がよりスムーズになるでしょう。


まとめ

本記事では、GitHub Actionsが現代の開発プロセスにおいて欠かせない自動化基盤であることを解説しました。GitHub Actions は、ワークフロー/イベント/ジョブ/アクション/ランナーを組み合わせ、CI/CD をはじめとする開発プロセスを GitHub 上で一元的に自動化できるプラットフォームです。基本構文(on・jobs・runs-on・steps・uses・run)を押さえるだけで、テストやビルドの自動実行から、アーティファクトの受け渡し、Secrets を用いた安全なデプロイまでを段階的に実装できます。


まずは最小の CI から導入し、必要に応じてマトリクス実行や権限の最小化、Copilot を活用した YAML の保守性向上など利用範囲を拡張することで、品質と開発速度の双方を継続的に高めたワークフローが構築されていくでしょう。


東京エレクトロンデバイスは、企業のGitHubおよびGitHub Copilotの導入、請求、契約をワンストップでサポートしています。
お問い合わせはこちら


CONTACT
お問い合わせ

Microsoft AzureおよびAI・IoTに関する
お問い合わせはこちらから

東京エレクトロンデバイス株式会社

Copyright © Tokyo Electron Device LTD. All Rights Reserved.
当ウェブサイトでは、サイトの利便性向上のためにクッキーを利用しています。サイトの閲覧を続行されるには、クッキーの使用にご同意いただきますようお願いします。詳細はこちら