SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GitHub Actionsをはじめよう

【GitHub Actionsをはじめよう】GitHub Actionsとは? 実務での活用シーンを紹介

GitHub Actionsをはじめよう 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

GitHub Actionsを使ってみよう

 さっそくGitHub Actionsを使ってみましょう! まずは簡単なワークフローを作って動かしてみます(動かした後に解説をしていきます)。

 ワークフローの実態はリポジトリの特定のフォルダに保存されるYAMLファイルです。このYAMLファイルに、GitHub Actionsの構文とYAMLファイルの仕様にしたがって記載することでワークフローが完成します。

まずは動かしてみよう

ファイルを作成する

 今回は新しいリポジトリを作成し、そこにワークフローファイルを作ります。ローカルで作成したものをpushしても、GitHub上で直接作成してもどちらでも構いません。なお、今回は無料で利用可能、かつ制限が少ない「パブリックリポジトリ」を作成します。利用料金については後述している「料金」の項目と、公式ドキュメントをご確認ください。

 手順は以下の通りです。

  1. パブリックリポジトリを新規に作成する
  2. リポジトリ直下に.github/workflowsフォルダを作成する
  3. .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の構文についてさらに詳しく学んでいきます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

藤澤 千尋(フジサワ チヒロ)

 ソフトウェアエンジニアとして約10年働いており、最近は主にフロントエンド開発を担当しています。最近、筋トレを始めました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21036 2025/02/27 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング