🛠️

GitHub ActionsのWorkflow Dispatch実行時に自動テストの実行有無を指定する

2023/12/02に公開

自動テストは時間とお金がかかるため、GitHub Actionsのワークフローを実行する際にテストをスキップしたい場合がしばしばあります。コミットしたときに発火するワークフローをスキップしたい場合はコミットメッセージに [ci skip] を含めれば良いですが、Workflow Dispatchで手動実行する場合にスキップするならちょっとした工夫で便利な手法があります。

inputs を使ってフラグを立てましょう!

name: Sample Workflow

on:
  workflow_dispatch:
+   inputs:
+     ui-test-flag:
+       type: choice
+       description: UIテストを実行しますか
+       required: true
+       options:
+       - 実行する
+       - 実行しない

jobs:
  test:
    name: Test
    runs-on: macos-13
    env:
      DEVELOPER_DIR: "/Applications/Xcode_15.0.1.app/Contents/Developer"
      
    - name: Unit Test
        run: # Unit Testの実行

      - name: UI Test
+       if: github.event.inputs.ui-test-flag == '実行する'
        run: # UI Testの実行

そうすると、Workflowの詳細画面で実行する時のポップアップにプルダウンメニューが追加されて、テストを実行するかどうか指定できる様になります!

応用すれば他の制御もできるのでぜひ活用しましょう!

参照

Discussion