33
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHub ActionsAdvent Calendar 2022

Day 24

GitHub Actionsの実行・結果確認をターミナルで完結させるalias

Last updated at Posted at 2022-12-24

この記事を読むとできるようになること

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/

33
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?