【问题标题】: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) }}"