※記事内に商品プロモーションを含むことがあります。
はじめに
GitHub Actionsでトリガーイベントを設定し、簡単なLinuxコマンドを実行する方法をまとめた。
GitHubには、処理を自動実行するGitHub Actionsという機能がある。
処理を実行するきっかけ(トリガーイベント)は、pushやpull requestなどのリポジトリ操作や、cronによる定期実行を指定可能である。また、手動実行も可能である。
GitHub Actionsを使用すると、テストやビルド作業を自動化することができる。
この記事ではGitHub Actionsの入門として、Linuxのechoコマンド(数値や文字を表示するコマンド)を実行する方法を解説する。
主な手順は以下の通り。
- GitHub Actions設定ファイルの作成
- 実行結果の確認
- GitHub Actions設定ファイルの解説
また、GitHubのアカウント(Freeプランで可)を持っていることを前提とする。
なお、GitHub Actionsは以下の範囲まで無料で利用できる(2021/6/19現在)。
- パブリックリポジトリ:無料
- プライベートリポジトリ:
- Freeプラン:2000分/月まで無料
- Proプラン:3000分/月まで無料
最新の情報や詳細は以下のページを参照。
Actions GitHub
GitHub Actions設定ファイルの作成
GitHub Actionsを使用するためには、YAML形式の設定ファイルをリポジトリ内に作成する必要がある。
なお、YAMLは構造化されたデータを表現するためのテキスト形式のフォーマットである。
ここでは、GitHubでリポジトリを新規作成する(プライベート、パブリックのどちらでも可)。
このリポジトリに.github/workflows/
フォルダを作成する。
このフォルダの下に、以下のsample.yml
を作成する(異なるファイル名でもよい。また、拡張子は.yml
, .yaml
のどちらでも可)。
このファイルは、Linux環境でechoコマンドを実行して、Hello World!
と表示するものである。
|
|
作成したファイルをGitHubにpushする(上記のファイルではpushがトリガーイベントになっているため、このpushで実行される)。
|
|
GitHub Actionsの実行結果
YAMLファイルをpushした後にGitHubのActionsタブを開くと、sample.yml
に定義したワークフローの実行に成功したことが表示されている(画像の右側)。
この実行結果の詳細を確認すると、echo "Hello World!"
を実行できたことが確認できる。
実行結果の確認
以下では、作成したYAMLファイルについて解説する。
ワークフローの名前
ワークフローの名前をname
で指定できる(省略可)。
|
|
トリガーイベント
ワークフローを実行するための条件をon
以下に指定する。
|
|
複数の条件を指定可能であり、ここでは次の2条件を指定している。
- masterブランチへのpush
- GitHub上で手動実行 (
workflow_dispatch
)
なお、workflow_dispatch
を指定することにより、GitHub上に"Run workflow"ボタンが表示され、これを押すとワークフローが実行される。
トリガーイベントとして、プルリクエストや特定のタグ、cronなども指定可能である。
ジョブ
実行する処理内容や実行環境をjobs
以降に記述する。
|
|
print-hello-world
はジョブ名である。ジョブ名には英数字と-
, _
のみ使用可(スペースは使用不可)。
なお、1つのYAMLファイルに複数のジョブを指定可能である。原則として各ジョブは並列に実行されるが、依存関係(他のジョブの終了を待つ)を設定することも可能である。
runs-on
はジョブが実行されるマシンの種類である。
2021/6/19現在、ubuntu-latest
はUbuntu 20.04となる。他にWindows ServerやmacOSが利用可能である。
詳細は以下ページのjobs.<job_id>.runs-on
の項を参照。
GitHub Actionsのワークフロー構文 - GitHub Docs
steps
以降に実行する処理(タスク)を記述する。name
はタスクの名前(省略可)である。
タスクが複数ある場合、以下のように続ける。
|
|
もしくは、以下のようにしても良い(run
の後の|
を忘れないように)。
|
|
また、別途定義された処理をuses
を使って実行できる。
以下はGitのcheckoutコマンドを実行する例である。
|
|
これは、actions/checkout@v2
は以下のリポジトリのVersion 2(タグで指定されたバージョンのこと)を参照することを意味する。
actions_checkout - GitHub
まとめ
GitHub Actionsの簡単な例として、設定ファイルを作成し、Linuxのechoコマンドの実行を確認した。また、設定ファイルについて解説した。
GitHub ActionsでPythonスクリプトを実行する方法については以下の記事を参照。
GitHub ActionsでPythonスクリプトを実行する – Helve Tech Blog