はんなりと、ゆるやかに

アジャイル、スクラムが好きが日々から学んだことをアウトプット

GitHub CLI で GitHub Actions を コントロールする

前回、GitHub CLI を使ってみた - はんなりと、ゆるやかに の記事で初めて GitHub CLI を使ってみました。今回はGitHub CLI を使ってGitHub Actions をコントロールしてみたいと思います。

リポジトリこちらを使っていきます。
なお、GitHub CLIのバージョンは「v2.0.0」を使っています。
また、サンプルコマンドはワークフローID(12307731)を指定していますが、ワークフロー名(powershell.yml)でも同じ結果です。

ワークフロー の一覧を知る

gh workflow list を実行すると一覧が取得できます。-a というオプションがあり、ワークフロー が有効か無効かによって結果が異なります。以下の結果を見てください。PowerShellTest というワークフローが一つあるため、gh workflow list を実行するとPowerShellTest が取得できています。しかし、そのワークフローをdisable にするとgh workflow list では取得できません。gh workflow list -aを実行することで取得できます。

> gh workflow list
PowerShellTest  active  12307731

> gh workflow list -a
PowerShellTest  active  12307731

> gh workflow disable 12307731
Disabled PowerShellTest

> gh workflow list

> gh workflow list -a
PowerShellTest  disabled_manually  12307731

ワークフロー を実行する

gh workflow run を実行するとワークフローが実行できます。ここで、1点注意があります。実行するワークフローのonトリガーにworkflow_dispatch が設定されていないと実行されません。設定されていない場合は「could not create workflow dispatch event: HTTP 422: Workflow does not have 'workflow_dispatch' trigger」というエラーが発生します。workflow_dispatch をお忘れなく設定してください
gh workflow run を実行した結果はgh run list --workflow= で確認できます。

> gh workflow run 12307731
✓ Created workflow_dispatch event for powershell.yml at master

> gh run list --workflow=12307731
STATUS   N  AME                                                    WORKFLOW        BRANCH  EVENT              ID          ELAPSED  AGE
-  on に workflow_dispatch を追加                     PowerShellTest     master              workflow_dispatch  1213868779  9s       0m

ワークフローの詳細を知る

gh workflow view を実行すると指定ワークフローの詳細が確認できます。オプションなしの場合は直近の実行したJobが表示され、-y をつけるとyamlファイルが確認できます。

> gh workflow view 12307731
PowerShellTest - powershell.yml
ID: 12307731

Total runs 6
Recent runs
✓  Jobの名前が分かりにくかったので修正                     PowerShellTest  master  push  1143428361
✓  pwsh から ps1 ファイルを実行するとどうなるのか確認する  PowerShellTest  master  push  1143418024
・・・省略・・・

> gh workflow view 12307731  -y
PowerShellTest - powershell.yml
ID: 12307731

name: PowerShellTest

on:
  push:
  workflow_dispatch:

jobs:
  first_job:
    runs-on: windows-2019
    steps:
      - name: Checkout
        uses: actions/checkout@v2
・・・省略・・・

まとめ

  • GitHub CLIGitHub Actions は簡単にコントロールできます
  • gh workflow runするときは、onworkflow_dispatchの設定が必要です