[GitHub Actions]defaultブランチ以外のWorkflowを手動実行する
こんにちは。貴島(@jnkykn)です。以前、たまたま出張先のホテルで途中から見て以来「最初から見たい!」と思っていた「アストリッドとラファエル」をhuluで見つけて見ています。アストリッドとラファエルのコンビ誕生のきっかけやアストリッドの生い立ちも知ることができて、さらにアストリッドのファンになりました。さて今日は、GitHub Actionsについて調べて試します。
defaultブランチ以外のWorkflowの手動実行の方法を確かめる
スライドのpdfファイルのpdffonts自動実行用のWorkflowは個人のリポジトリでテストしただけで、まだ業務用のリポジトリの機能追加用のブランチではテスト実行できていません。defaultブランチ以外だとworkflow_dispatchを設定していても手動実行のためのボタンが表示されないので、実行方法を調べることにします。
ワークフローの手動実行の仕様を確認する
GitHub公式のワークフローを手動実行する設定を読んでみると、
とあります。はい、その通りですね。でも、テスト実行してからプルリクエストしたいじゃないですか。なので、実行方法を調べます。
GitHub CLIで実行する
ワークフローを手動実行する設定には、GitHub CLIを使う方法が紹介されています。これを試します。
まず、Installing gh on Linux and BSDに従って、GitHub CLIをインストールしました。ログイン時の認証には、ブラウザでログインする方法を選択しました。
gh auth login
:
✓ Authentication complete.
- gh config set -h github.com git_protocol ssh
✓ Configured git protocol
! Authentication credentials saved in plain text
✓ Uploaded the SSH key to your GitHub account: /home/tetrapod/.ssh/id_rsa.pub
✓ Logged in as tetrapod418
リポジトリの既定のブランチ以外のブランチでWorkflowを実行するには、--ref フラグを使えば良いらしいので実行してみます。
$ gh workflow run sub-workflow.yaml --ref subbranch-test
✓ Created workflow_dispatch event for sub-workflow.yaml at subbranch-test
To see runs for this workflow, try: gh run list --workflow=sub-workflow.yam
ああ、そのまま実行されるわけじゃなくて、出力されたyamlを使って実行すれば良いみたいです。tryって言われているので、試してみます。
$ gh run list --workflow=sub-workflow.yaml
STATUS TITLE WORKFLOW BRANCH EVENT ID ELAPSED AGE
✓ test workfl... test work... subbranch... workflow_... 9535050633 12s less than...
✓ test workfl... test work... subbranch... workflow_... 9534492785 11s about 1 h...
X update steps. test work... subbranch... push 9534432323 0s about 1 h...
X update steps. test work... subbranch... push 9534421023 0s about 1 h...
X update steps. test work... subbranch... push 9534412331 0s about 1 h...
X test workfl... test work... subbranch... workflow_... 9534388280 41s about 1 h...
X test workfl... test work... subbranch... workflow_... 9534382041 2m30s about 1 h..
実行結果のリストが新しい順に表示されました。一番先頭が、CLIで実行した結果です。ブラウザでも確認します。
もっと面倒かと思ったのですが、あっさり実行できてしまいました。CLIを使う方法、良いですね。
defaultブランチにダミーのWorkflowを追加して同名の別リポジトリのworkflowを実行する方法
Workflowの実行方法については、GitHub Actions でデフォルトブランチにないワークフローの動作確認をするに、「defaultブランチにダミーのWorkflowを登録して、別リポジトリの同名のWorkflowに実際に実行したいjobを登録する方法」が紹介されていました。こちらも、試してみることにします。
mainブランチに、ダミーのWorkflowを追加しました。
name: test workflow to exec other branch
on:
workflow_dispatch:
jobs:
other-branch-job:
runs-on: ubuntu-latest
steps:
- name: test job
run: echo "execute other branch workflow!"
別のリポジトリの同名のWorkflowを修正して、実行したい内容をjobに追加しました。
name: test workflow to exec other branch
on:
workflow_dispatch:
jobs:
other-branch-job:
runs-on: ubuntu-latest
steps:
- name: test job
run: echo "execute other branch workflow!"
ActionsのRun workflowを確認します。
subbranch-testを選択して実行してみます。
まとめ
今日は、defaultブランチ以外のWorkflowを実行する方法を調べて試してみました。難しそうだと思っていたことも、実際に試すことができたので満足です。キリが良いので、今日はここまでにします。
更新履歴:
タイポの修正。(2024-06-17)