ActionsにチェックボックスUIを追加し、選択した項目についてstepを回すサンプルです。
実行すると以下のように選択された"fuga"についてstepが実行されます。
workflow
name: example
on:
workflow_dispatch:
inputs:
hoge:
description: hoge
required: false
type: boolean
default: false
fuga:
description: fuga
required: false
type: boolean
default: false
...
jobs:
set-matrix:
runs-on: self-hosted
outputs:
target: ${{ steps.setmatrix.outputs.target }}
steps:
- name: Set dynamic matrix
id: setmatrix
run: |
$tgts = @()
$inputs = ConvertFrom-Json '${{ toJson(github.event.inputs) }}'
foreach ($tgt in $inputs.psobject.Properties.Name) {
if ($inputs.$tgt -eq "true") {
$tgts += $tgt
}
}
$tgts_str = $tgts -join '","'
Write-Output "target=[`"$tgts_str`"]" >> $env:GITHUB_OUTPUT
deploy:
needs: set-matrix
runs-on: self-hosted
strategy:
matrix:
target: ${{ fromJson(needs.set-matrix.outputs.target) }}
steps:
- uses: actions/checkout@v3
- name: deploy
run: powershell -NoProfile -ExecutionPolicy Unrestricted $env:GITHUB_WORKSPACE\.github\example.ps1 ${{ matrix.target }}