SHOEISHA iD

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

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

GitHub Actionsをはじめよう

【GitHub Actions 徹底解説】GitHub Actionsの構文をよりくわしく学ぶ

GitHub Actionsをはじめよう 第2回

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

 近年、多くのチームがCI/CDに取り組んでいます。そんな状況の中、CI/CDに興味があるものの何から始めていいかわからない、他のツールを使っていたがGitHub Actionsを使ってみたい、という方もいるのではないでしょうか。そんな方に向けて、本連載ではGitHub Actionsの基本を解説していきます。複雑化するシステム、ますます求められる品質やセキュリティといった側面を考えると、CI/CDもシステム開発における基礎知識です。一緒にGitHub Actionsをはじめましょう!

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

これまでのおさらい

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

はじめに

 こんにちは、都内でソフトウェアエンジニアとして働いている藤澤です。

 本連載「GitHub Actionsをはじめよう」の第1回では、「まずはGitHub Actionsに触れてみよう」というテーマのもと、実際にワークフローを作って動かしてみました。第2回となる今回は、より詳しくGitHub Actionsの構文を学んでいきましょう。

対象読者

  • GitHub Actionsを使ったことはないが使ってみたいという方
  • GitHub Actionsを学び直したい方
  • Git、GitHubの基本的な利用方法を理解されている方

本記事の情報について

 本連載に掲載している内容は、2025年4月現在の情報を元にしております。実際に利用する際は公式ドキュメントをご確認ください。

いろいろなイベントで動かしてみよう

 ワークフローには、ワークフローのトリガーとなるイベントを1つ以上指定します。「いつ」「どんなとき」にワークフローを動かしたいのかというタイミングを決めるのです。今回は前回も利用したpushイベントの振り返りと、よく利用するであろうイベントを2つ紹介します。

 ここで紹介するもの以外にも指定できるイベントはたくさんあるので、公式ドキュメントをご確認ください。

基本構文

 第1回のサンプルコードで利用したpushイベントを参考に、イベント指定の基本的な構文を説明します。イベントはonキーを使って指定します。以下は第1回のサンプルコードの一部抜粋です。mainブランチにpushしたときにワークフローが実行されます。

name: Hello World GitHub Actions
run-name: ${{ github.actor }} ran the workflow
on: 
  push:
    branches:
      - 'main'

 pushイベントを指定する場合、branchesbranches-ignoreといったフィルターを指定することで、フィルタリングが可能です。branchesの場合、指定したブランチ名パターンに一致するブランチの場合にワークフローを実行します。branches-ignoreの場合は、指定したブランチ名パターンに一致するブランチの場合はワークフローを実行しません。

 onキー自体はワークフローに対して1つだけ指定できますが、イベントは複数指定できます。以下は、pushイベントとpull_requestイベントの両方を指定したサンプルコードの一部抜粋です。

on: 
  push:
    branches:
      - 'main'
  pull_request:
    types:
      - 'opened'

 上記の場合、mainブランチにpushされたときとプルリクエストが作成されたときにワークフローが実行されます。

schedule

 今回新たに紹介するイベントの1つ目はscheduleです。指定した時刻にワークフローを実行できます。スケジュールはcron形式で記載します。

name: Schedule event demo
on: 
  schedule: 
    - cron: '0 23 * * *'
jobs:
  print-info-job:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Event - ${{ github.event_name }}"

 上記の指定では、毎日8時00分にワークフローが実行されます。時刻はUTCで指定する必要があります。日時でビルドしたい、週次で情報をチェックしたい、といった場合に利用できます。

 schedule指定の場合、注意点がいくつかあります。scheduleを指定したワークフローは、このワークフロー、すなわちymlファイルがデフォルトブランチにコミットされている必要があります。例えば、デフォルトブランチがmainブランチの場合、featureブランチでワークフローを作成しただけではこのワークフローは実行されません。mainブランチにマージされる必要があります。

 また、必ずしも指定した時間通りに実行されるわけではありません。負荷状態などから指定した時間ぴったりに動かないことがあります。

 スケジュール指定を行ったワークフローを一度動かすと、指定日時になるたびに動き続けます。止めたい場合は、ワークフローのイベントを別イベントに書き換える他、GitHub上からワークフローを無効化することでも可能です。

workflow_dispatch

 2つ目はworkflow_dispatchです。ワークフローを任意のタイミングで実行したい、という場合に利用できます。

name: Workflow dispatch event demo
on: 
  workflow_dispatch
jobs:
  print-info-job:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Event - ${{ github.event_name }}"

 workflow_dispatchを指定することで、GitHub上のワークフロー画面に、手動で実行するためのボタンが表示されます。

「Run workflow」ボタン

 「Run workflow」ボタンを押すことでワークフローを実行することができます。

 ボタンの上には、ブランチを選択するUIが表示されます。ブランチ選択のUIは、イベントにworkflow_dispatchを指定すると自動的に表示されます。他の入力値を自分で設定することも可能です。

 scheduleイベントと同様、こちらもデフォルトブランチにymlファイルがコミットされている必要があるのでお気をつけください。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
ワークフロー構文

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
GitHub Actionsをはじめよう連載記事一覧
この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング