ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

GitHub Actions 入門

GitHub Actions の中核的概念とさまざまなコンポーネントについて学び、リポジトリに自動化を追加する方法の例を示します。

ここには以下の内容があります:

Note: GitHub Actions was available for GitHub Enterprise Server 2.22 as a limited beta. The beta has ended. GitHub Actions is now generally available in GitHub Enterprise Server 3.0 or later. For more information, see the GitHub Enterprise Server 3.0 release notes.


Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.

概要

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

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

ワークフローの概要

GitHub Actions のコンポーネント

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

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

ワークフロー

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

イベント

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

ジョブ

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

ステップ

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

アクション

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

ランナー

ランナーは、GitHub Actionsランナーアプリケーションがインストールされているサーバーです。 GitHub がホストするランナーを使用することも、自分でランナーをホストすることもできます。 ランナーは、使用可能なジョブをリッスンし、一度に 1 つのジョブを実行し、進行状況、ログ、および結果を GitHub に返します。 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@v1
          - 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@v1
このアクションにより、node ソフトウェアパッケージがランナーにインストールされ、npm コマンドにアクセスできるようになります。
    - 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. ジョブ名をクリックして、各ステップの結果を確認します。

    ワークフロー実行の詳細のスクリーンショット

次のステップ

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

サポートへの連絡

If you need help with anything related to workflow configuration, such as syntax, GitHub-hosted runners, or building actions, look for an existing topic or start a new one in the GitHub Community Support's GitHub Actions category.

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

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

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

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.