GitHub Actionsを使ってみよう
さっそくGitHub Actionsを使ってみましょう! まずは簡単なワークフローを作って動かしてみます(動かした後に解説をしていきます)。
ワークフローの実態はリポジトリの特定のフォルダに保存されるYAMLファイルです。このYAMLファイルに、GitHub Actionsの構文とYAMLファイルの仕様にしたがって記載することでワークフローが完成します。
まずは動かしてみよう
ファイルを作成する
今回は新しいリポジトリを作成し、そこにワークフローファイルを作ります。ローカルで作成したものをpushしても、GitHub上で直接作成してもどちらでも構いません。なお、今回は無料で利用可能、かつ制限が少ない「パブリックリポジトリ」を作成します。利用料金については後述している「料金」の項目と、公式ドキュメントをご確認ください。
手順は以下の通りです。
- パブリックリポジトリを新規に作成する
-
リポジトリ直下に
.github/workflows
フォルダを作成する -
.github/workflows
フォルダ内にhello-world-github-actions.yml
というファイルを作成する
ワークフローを記述する
作成したhello-world-github-actions.yml
ファイルに以下を記載し、保存します。
name: Hello World GitHub Actions run-name: ${{ github.actor }} ran the workflow on: push: branches: - 'main' jobs: print-info-job: runs-on: ubuntu-latest steps: - run: echo "Hello World GitHub Actions" - run: echo "Event - ${{ github.event_name }}" - run: echo "Status - ${{ job.status }}."
ワークフローを実行する
hello-world-github-actions.yml
の追加をコミットしてpushします。ブランチはmain
ブランチです。
今回作成したワークフローは「mainブランチにpushしたときに実行される」ようにしています。ここまでの作業で、ワークフローが動いています。これで初めてのワークフローが実行されました!
ワークフローの実行結果を確認する
GitHub上からワークフローの実行結果を確認することができます。ブラウザにて、作成したリポジトリを表示し、タブの中から「Actions」を選ぶことで実行したワークフローの結果一覧が表示されます。このリストに実行結果が1つ表示されているはずです。
このとき、ワークフローがまだ実行中の場合があります。その場合は完了するまで待ちましょう。今回のワークフローの実行は時間がかからないもののため、すぐに終わるはずです。
緑色のチェックマークがつけば成功です!

ワークフローの実行結果が失敗になってしまった場合
ワークフローの実行結果が失敗になってしまった場合、GitHub上から確認できる実行結果を確認してみましょう。エラーメッセージが表示されているはずです。また、YAMLファイルの記述も再度確認してみましょう。
ワークフローの実行結果そのものが表示されていない場合(結果一覧が空の場合)は、ファイルの保存場所が間違っていないかを確認してみましょう。また、ファイルがYAMLファイルとして認識されているか、拡張子も確認しましょう。
解説
ここからは作成したワークフローについて項目ごとに解説していきます。
ディレクトリ・ファイル名
ワークフローファイルには以下の制限があります。
-
YAMLファイルであること(拡張子は
.yml
か.yaml
) -
リポジトリ直下の
.github/workflows
に配置すること
これらの条件を満たさないと、ワークフローファイルとは見なされません。
ワークフローの構成
まずは概念的な説明です。ワークフローには以下の要素が含まれます。
イベント
このワークフローのトリガーとなるイベントを1つ以上指定します。「pushしたとき」「プルリクエストを作ったとき」「指定の時刻になったとき(スケジュール)」など、さまざまなイベントを指定できます。
ジョブ
1つ以上のジョブを含みます。ジョブごとに指定した種類のマシンで実行されます。1つのワークフローに複数のジョブを構成することも可能で、並列実行することも順番に実行することもできます。何も指定しない場合は並列で実行されます。
ステップ
ジョブに含まれるタスクです。ここに実際に行いたい処理を記述します。各ステップでは、コマンドを実行したり、自分で作ったスクリプトを呼び出したり、公開されているアクションを実行できます。
ワークフロー構文
hello-world-github-actions.yml
ファイルを上から1行ずつ解説します。
name
ワークフローの名前です。GitHub上でActionsタブを開いたときに表示されるワークフロー一覧に表示されている名称はこちらのname
です。
run-name
ワークフローの実行名です。省略することも可能です。GitHub上でActionsタブを開いたときに表示されるワークフローの実行一覧に表示されている名称です。
「式」を含めることができ、今回のサンプルのようにgithub
コンテキストも参照することができます。このワークフローを最初に実行したユーザー(あなたです)のユーザー名が利用されて、「<ユーザー名> ran the workflow」と表示されます。式やコンテキストについては第2回でくわしく取り上げます。
on
このワークフローのトリガーとなるイベントを定義します。
on: push: branches: - 'main'
サンプルでは、on
の直後にpush
が指定されているので、「リポジトリへpush
したとき」にワークフローが実行されます。ただし、ここではbranches
が指定されています。このbranches
はフィルターの役割をしており、branches
に指定されているmain
ブランチにpush
されたときのみ、このワークフローが実行されるようになっています。イベントについても、第2回でくわしく取り上げます。
jobs
ジョブを構成します。
jobs.<job_id>
ジョブを一意に識別するための識別子です。
jobs: print-info-job:
サンプルではprint-info-job
がこの識別子となります。
runs-on
ジョブを実行するマシンの種類を指定します。マシンには、GitHubのホステッドランナーや自分で用意したランナーを指定することができます。サンプルではGitHubのホステッドランナーを利用しており、LinuxOSを指定しています。何が提供されているかは公式ドキュメント内に記載があります。
steps
ここで実際の処理を定義していきます。サンプルでは3つの処理を定義しており、どれもecho
コマンドを実行するようになっています。GitHub上の実行結果にecho
の結果が表示されているので確認してみましょう。
- run: echo "Hello World GitHub Actions"
「Hello World GitHub Actions」と表示されます。
- run: echo "Event - ${{ github.event_name }}"
「Event - push」と表示されます。github
コンテキストを参照して、このワークフローを実行したイベントを表示しています。
- run: echo "Status - ${{ job.status }}."
「Status - success.」と表示されます。job
コンテキストを参照して、このジョブの現在の状態を表示しています。
料金
料金については、GitHubアカウントのプランや、パブリックリポジトリかプライベートリポジトリかでも変わってきます。
パブリックリポジトリを利用している場合、基本的にGitHub Actionsは(GitHubホステッドランナーとセルフホステッドランナーの場合)無料で利用できます。プライベートリポジトリにはGitHubアカウントのプランやランナーの種類によって一定の無料範囲があり、そこを超えると有料となります。詳細は公式ドキュメントを確認した上で利用してください。
まとめ
今回は以下の内容を取り上げました。
- GitHub Actionsとは何か、実務での活用シーン
- 実際にGitHub Actionsを動かしてみる
次回はGitHub Actionsの構文についてさらに詳しく学んでいきます。