Understanding GitHub Actions

Learn the basics of GitHub Actions, including core concepts and essential terminology.

ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。

概要

GitHub Actions は、ソフトウェア開発ライフサイクル内のタスクを自動化するのに役立ちます。 GitHub Actions はイベント駆動型で、指定されたイベントが発生した後に一連のコマンドを実行できます。 たとえば、誰かがリポジトリのPull Requestを作成するたびに、ソフトウェアテストスクリプトを実行するコマンドを自動的に実行できます。

この図は、GitHub Actions を使用してソフトウェアテストスクリプトを自動的に実行する方法を示しています。 イベントは、ジョブを含むワークフローを自動的にトリガーします。 次に、ジョブはステップを使用して、アクションが実行される順序を制御します。 これらのアクションは、ソフトウェアテストを自動化するコマンドです。

ワークフローの概要

GitHub Actions のコンポーネント

以下は、ジョブを実行するために連動する複数の GitHub Actions コンポーネントのリストです。 これらのコンポーネントがどのように相互作用するかを確認できます。

コンポーネントとサービスの概要

ワークフロー

ワークフローは、リポジトリに追加する自動化された手順です。 ワークフローは 1 つ以上のジョブで構成されており、スケジュールまたはイベントによってトリガーできます。 ワークフローを使用して、GitHub でプロジェクトをビルド、テスト、パッケージ、リリース、またはデプロイできます。

イベント

イベントは、ワークフローをトリガーする特定のアクティビティです。 たとえば、誰かがコミットをリポジトリにプッシュした場合、あるいはIssueもしくはプルリクエストが作成された場合、GitHubからアクティビティを発生させることができます。 リポジトリディスパッチ webhook を使用して、外部イベントが発生したときにワークフローをトリガーすることもできます。 ワークフローのトリガーに使用できるイベントの完全なリストについては、ワークフローをトリガーするイベントを参照してください。

ジョブ

ジョブは、同じランナーで実行される一連のステップです。 デフォルトでは、複数のジョブを含むワークフローは、それらのジョブを並行して実行します。 ジョブを順番に実行するようにワークフローを設定することもできます。 たとえば、ワークフローにコードのビルドとテストという2つのシーケンシャルなジョブを持たせ、テストジョブをビルドジョブのステータスに依存させることができます。 ビルドジョブが失敗した場合は、テストジョブは実行されません。

ステップ

ステップは、ジョブでコマンドを実行できる個々のタスクです。 ステップは、アクションまたはシェルコマンドのいずれかです。 ジョブの各ステップは同じランナーで実行され、そのジョブのアクションが互いにデータを共有できるようにします。

アクション

アクションは、ジョブを作成するためにステップに結合されるスタンドアロンコマンドです。 アクションは、ワークフローの最小のポータブルな構成要素です。 独自のアクションを作成することも、GitHub コミュニティによって作成されたアクションを使用することもできます。 ワークフローでアクションを使うには、それをステップとして含めなければなりません。

ランナー

ランナーは、GitHub Actionsランナーアプリケーションがインストールされているサーバーです。 GitHub がホストするランナーを使用することも、自分でランナーをホストすることもできます。 ランナーは、使用可能なジョブをリッスンし、一度に 1 つのジョブを実行し、進行状況、ログ、および結果を GitHub に返します。 GitHub ホストランナーは Ubuntu Linux、Microsoft Windows、macOS に基づいており、ワークフローの各ジョブは新しい仮想環境で実行されます。 GitHub ホストランナーについては、GitHub ホストランナーについて」を参照してください。 別のオペレーティングシステムが必要な場合、または特定のハードウェア設定が必要な場合は、自分のランナーをホストできます。 セルフホストランナーの詳細については、「自分のランナーをホストする」を参照してください。

サンプルワークフローを作成する

GitHub Actionsは、YAML 構文を使用して、イベント、ジョブ、およびステップを定義します。 これらの YAML ファイルは、コードリポジトリの .github/workflows というディレクトリに保存されます。

コードがプッシュされるたびに一連のコマンドを自動的にトリガーするサンプルワークフローをリポジトリに作成できます。 このワークフローでは、GitHub Actions がプッシュされたコードをチェックアウトし、ソフトウェアの依存関係をインストールして、bats-v を実行します。

  1. リポジトリに、ワークフローファイルを保存するための .github/workflows/ ディレクトリを作成します。
  2. .github/workflows/ ディレクトリに、learn-github-actions.yml という名前の新しいファイルを作成し、次のコードを追加します。
    name: learn-github-actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v2
            with:
              node-version: '14'
          - run: npm install -g bats
          - run: bats -v
    
  3. これらの変更をコミットして、GitHub リポジトリにプッシュします。

これで、新しい GitHub Actions ワークフローファイルがリポジトリにインストールされ、別のユーザがリポジトリに変更をプッシュするたびに自動的に実行されます。 ジョブの実行履歴の詳細については、「ワークフローのアクティビティを表示する」を参照してください。

ワークフローファイルを理解する

YAML 構文を使用してワークフローファイルを作成する方法を理解しやすくするために、このセクションでは、導入例の各行について説明します。

name: learn-github-actions
オプション - GitHub リポジトリの [Actions] タブに表示されるワークフローの名前。
on: [push]
ワークフローファイルを自動的にトリガーするイベントを指定します。 この例では push イベントを使用しているため、別のユーザが変更をリポジトリにプッシュするたびにジョブが実行されます。 特定のブランチ、パス、またはタグでのみ実行するようにワークフローを設定できます。 ブランチ、パス、またはタグを含むまたは除外する構文の例については、「GitHub Actions のワークフロー構文」を参照してください。
jobs:
learn-github-actions ワークフローファイルで実行されるすべてのジョブをグループ化します。
check-bats-version:
jobs セクション内に保存されている check-bats-version ジョブの名前を定義します。
  runs-on: ubuntu-latest
Ubuntu Linux ランナーで実行するようにジョブを設定します。 これは、ジョブが GitHub によってホストされている新しい仮想マシンで実行されるということです。 他のランナーを使用した構文例については、「GitHub Actions のワークフロー構文」を参照してください。
  steps:
check-bats-version ジョブで実行されるすべてのステップをグループ化します。 このセクションの下にネストされている各アイテム、個別のアクションもしくはシェルコマンドです。
    - uses: actions/checkout@v2
uses キーワードは、actions/checkout@v2 という名前のコミュニティアクションの v2 を取得するようにジョブに指示します。 これは、リポジトリをチェックアウトしてランナーにダウンロードし、コードに対してアクション(テストツールなど)を実行できるようにします。 ワークフローがリポジトリのコードに対して実行されるとき、またはリポジトリで定義されたアクションを使用しているときはいつでも、チェックアウトアクションを使用する必要があります。
    - uses: actions/setup-node@v2
      with:
        node-version: '14'
This step uses the actions/setup-node@v2 action to install the specified version of the node software package on the runner, which gives you access to the npm command.
    - run: npm install -g bats
run キーワードは、ランナーでコマンドを実行するようにジョブに指示します。 この場合、npm を使用して bats ソフトウェアテストパッケージをインストールしています。
    - run: bats -v
最後に、ソフトウェアバージョンを出力するパラメータを指定して bats コマンドを実行します。

ワークフローファイルの視覚化

この図では、作成したワークフローファイルと、GitHub Actions コンポーネントが階層にどのように整理されているかを確認できます。 各ステップは、単一のアクションまたはシェルコマンドを実行します。 ステップ 1 と 2 は、ビルド済みのコミュニティアクションを使用します。 ステップ 3 と 4 では、ランナーで直接シェルコマンドを実行します。 ワークフローのビルド済みアクションの詳細については、「アクションの検索とカスタマイズ」を参照してください。

ワークフローの概要

ジョブのアクティビティを表示する

ジョブの実行が開始されると、実行の進行状況の視覚化グラフが表示され、GitHub での各ステップのアクティビティが表示されます。

  1. GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。

  2. リポジトリ名の下でActions(アクション)をクリックしてください。 リポジトリに移動

  3. 左サイドバーで、表示するワークフローをクリックします。 ワークフロー結果のスクリーンショット

  4. [Workflow runs] で、表示する実行の名前をクリックします。 ワークフロー実行のスクリーンショット

  5. [Jobs] または視覚化グラフで、表示するジョブをクリックします。 ジョブを選択

  6. 各ステップの結果を表示します。 ワークフロー実行の詳細のスクリーンショット

次のステップ

GitHub Actions について詳しくは、「アクションの検索とカスタマイズ」を参照してください。

To understand how billing works for GitHub Actions, see "About billing for GitHub Actions".

サポートへの連絡

たとえば構文、GitHubホストランナー、アクションの構築など、ワークフローの設定に関して何か支援が必要な場合は、GitHub Community SupportのGitHub Actionsカテゴリで既存のトピックを探してみるか、新しいトピックを開始してください。

GitHub Actionsについてのフィードバックもしくは機能リクエストがあるなら、それらをGitHub Actionsのフィードバックフォームで共有してください。

あなたの利用方法、もしくは意図する利用方法が利用制限のカテゴリに当てはまるかどうかに関わらず、以下のいずれかの場合はyour site administratorに連絡してください。

  • アカウントに間違った制約が課されていると思われる場合
  • たとえばユニークIDのような予想外のエラーに、アクションの実行時に遭遇した場合
  • 既存の動作が期待される、ただし必ずしもドキュメント化されてはいない動作と矛盾するような状況に遭遇した場合

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?