近年、多くのチームがCI/CDに取り組んでいます。そんな状況の中、CI/CDに興味があるものの何から始めていいかわからない、他のツールを使っていたがGitHub Actionsを使ってみたい、という方もいるのではないでしょうか。そんな方に向けて、本連載ではGitHub Actionsの基本を解説していきます。複雑化するシステム、ますます求められる品質やセキュリティといった側面を考えると、CI/CDもシステム開発における基礎知識です。一緒に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イベントを指定する場合、branchesやbranches-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」ボタンを押すことでワークフローを実行することができます。
ボタンの上には、ブランチを選択するUIが表示されます。ブランチ選択のUIは、イベントにworkflow_dispatchを指定すると自動的に表示されます。他の入力値を自分で設定することも可能です。
scheduleイベントと同様、こちらもデフォルトブランチにymlファイルがコミットされている必要があるのでお気をつけください。
この記事は参考になりましたか?
- GitHub Actionsをはじめよう連載記事一覧
-
- 【GitHub Actions 実践編】小さく始めて育てる──CI/CD継続のポイント
- 【GitHub Actionsの基本のキ】実際に“アクション”を作ってみよう
- 【GitHub Actions 徹底解説】GitHub Actionsの構文をよりくわしく...
- この記事の著者
-
藤澤 千尋(フジサワ チヒロ)
ソフトウェアエンジニアとして約10年働いており、最近は主にフロントエンド開発を担当しています。最近、筋トレを始めました。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
