LoginSignup
6
1

More than 1 year has passed since last update.

【GithubActions】matrixを動的に生成してstepを回す

Posted at

ActionsにチェックボックスUIを追加し、選択した項目についてstepを回すサンプルです。
image.png
実行すると以下のように選択された"fuga"についてstepが実行されます。
image.png

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 }}
6
1
0

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
6
1