🛠️
GitHub Actionsのワークフロー手動実行時にフラグを切り替えて動作も切り替える
GitHub Actionsのワークフローを手動で実行する際、今回はテストを省略したいとか、今回は特定のスクリプトを走らせたいということがあると思います。GitHub ActionsのGUIからフラグを切り替える方法をまとめます。
workflow_dispatchで実行する時のインタフェースがこのようになります。
ポイント
-
workflow_dispath
を指定する時に、type: chice
のinputs
を設定してあげます。 -
job
やstep
の実行をif:
で制御します。
name: Sample Dispatch Workflow
on:
workflow_dispatch:
inputs:
first-flag:
type: choice
description: first-jobをやるかどうかのフラグ
required: true
options:
- withFirst
- withoutFirst
jobs:
first-job:
name: First Job
runs-on: ubuntu-latest
# withFirstを選択していたらfirst-jobは実行される
if: github.event.inputs.first-flag == 'withFirst'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Echo String
run: echo "🐔"
needs
でjob
に依存関係があるが、そのjob
をスキップした場合も後続のjob
を実行したい場合は、以下のようにします。
# 中略
jobs:
first-job:
...
second-job:
name: Second Job
runs-on: ubuntu-latest
needs: [first-job]
if: |
always() &&
!contains(needs.*.result, 'failure') &&
!contains(needs.*.result, 'cancelled')
steps:
...
if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled')
を用いることで依存元のjob
が成功した時かスキップされた時に後続の処理が実行されるようにできます。
Discussion