【问题标题】:How to allow manual workflow_dispatch only on specific branches?如何仅在特定分支上允许手动 workflow_dispatch?
【发布时间】:2022-12-01 04:05:06
【问题描述】:

我有一个 GitHub Actions 工作流文件,它允许使用 workflow_dispatch 事件手动触发。 GitHub 提供了一个下拉列表来选择在哪个分支上运行工作流。

我想知道有没有办法将该选项限制为特定分支(或特定分支)。

带有 workflow_dispatch 的工作流文件示例:

name: A test workflow title
on:
  push:
  workflow_dispatch:
    # branches:    # *** This seems to not be supported! ***
      # - main

jobs:
  print-hello-world:
    runs-on: ubuntu-20.04
    steps:
      - name: Print hello world
        run: echo "Hello world!"

【问题讨论】:

    标签: github github-actions


    【解决方案1】:

    如果工作流由特定分支上的workflow_dispatch 触发,则使用if 可以添加一个步骤使作业失败。

    name: A test workflow title
    on:
      push:
      workflow_dispatch:
    
    jobs:
      print-hello-world:
        runs-on: ubuntu-20.04
        steps:
          - name: Fail if branch is not main
            if: github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/main'
            run: |
              echo "This workflow should not be triggered with workflow_dispatch on a branch other than main"
              exit 1
    
          - name: Print hello world
            run: echo "Hello world!"
    
          - name: Log github context
            run: echo "${{ toJSON(github) }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 2020-07-28
      • 2018-02-22
      • 1970-01-01
      • 2023-02-09
      相关资源
      最近更新 更多