この記事を読むとできるようになること
git commitしてpushして、ブラウザ開いてactionsタブを開いてワークフロー探して・・・
というちょっと面倒な手間をなくして、gh-run
とターミナルで叩けばワークフローが実行できるようになります。
$ gh-run
# my-workflow.ymlをcurrent branchで実行
$ gh-watch
# 実行状況をターミナルに表示
$ gh-view
# 実行結果をターミナルに表示
$ gh-log
# 実行ログをターミナルに表示
aliasを設定します
~/.zshrc等に下記を追記して保存します。
その後、source ~/.zshrc
の実行もお忘れなく。
# gh
# 実行する
alias gh-run='gh workflow run .github/workflows/$workflow --ref $(git branch --show-current)'
# 実行を見守る
alias gh-watch='gh run list --workflow=$workflow | grep $(git branch --show-current) | cut -f 7 | head -n 1 | xargs gh run watch'
# 結果を確認
alias gh-view='gh run list --workflow=$workflow | grep $(git branch --show-current) | cut -f 7 | head -n 1 | xargs gh run view'
# ログを確認
alias gh-log='gh run list --workflow=$workflow | grep $(git branch --show-current) | cut -f 7 | head -n 1 | xargs gh run view --log'
実際のご利用イメージ
準備1: shell変数にファイル名を格納します
今回実行したいワークフローのファイル名はeveryday-holiday.yml
です。
workflow=everyday-holiday.yml
準備2: 実行したいブランチに移動して、ワークフローを修正したりしなかったり
my-feature-branchでいい感じの修正を加えたとします。
$ git branch
* my-feature-branch
$ git commit -m "feat: Happy Holidays"
$ git push origin HEAD
3. よし、修正したワークフローを実行しよう
gh-run
を叩くだけで、current branch上にあるワークフローを使ってワークフローが実行できるので、先程の修正を即座にテストできます。
$ gh-run
✓ Created workflow_dispatch event for everyday-holiday.yml at my-feature-branch
To see runs for this workflow, try: gh run list --workflow=everyday-holiday.yml
4. 実行が終わったかどうかをチェックする
gh-watch
を叩けば、先程実行したワークフローの実行状況がターミナルに表示できます。
実行状況は5秒間隔で実行状況が更新されます。
- ✓ がPassしたjob
- × がFailしたjob
- * が実行中のjobです
$ gh-watch
Refreshing run status every 3 seconds. Press Ctrl+C to quit.
* my-feature-branch Everyday Holiday #00000 · 1234567890
Triggered via workflow_dispatch less than a minute ago
JOBS
✓ wake-up (ID 12345678901)
× sleep-again (ID 909090909090)
* morning-coffee (ID 23456789012)
4. 実行結果を確認
gh-watch
はワークフローが実行中のとき使えるコマンドなので、すべて終わっていたら使えません。
代わりにgh-view
で確認します。
$ gh-view
✓ my-feature-branch Everyday Holiday #00000 · 1234567890
Triggered via workflow_dispatch about 14 minutes ago
JOBS
✓ wake-up (ID 12345678901)
× sleep-again (ID 909090909090)
✓ morning-coffee (ID 23456789012)
5. 実行ログを確認して失敗理由を調査する
gh-log
ですべてのログが表示されます。
ターミナルのログは見慣れない形式だったりブラウザで見る場合と情報が違っていたりします。もしブラウザでログを確認したいときは、-w
オプションを付けてgh-view -w
を叩くと一発で開けます。(※gh-log -wではないことに注意!)
その他のオプションを追加したい場合はGitHub CLIの公式ドキュメントを参照してください。
$ gh-log
# ログが出力される
まとめ
ターミナルでGitHub Actionsを実行→結果確認をおこなうことで、修正→動作確認を楽にしていきましょう〜
一発で動くコードが書けたら全然必要ないんですけどね:P
追記)書き忘れましたが、前提条件としてGitHub CLIをインストールしている必要があります。まだインストールしていない方は公式サイトをご確認ください。
https://cli.github.com/