GitHub Actions:workflow_dispatch事件会在pull_request打开时自动触发。

3

我在使用GitHub Actions时遇到了一个问题,即workflow_dispatch事件触发器与pull_request事件相结合时,不会等待手动操作,而是在拉取请求打开时自动触发。

以下是我工作流配置的简化版本:

name: Manual Workflow on PR
on:
  pull_request:
    types:
      - opened
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      #...

根据GitHub Actions文档,workflow_dispatch事件应该允许手动触发工作流程。然而,在我的情况下,无论是否手动触发,工作流始终在新的拉取请求打开时自动启动。
我已经验证了工作流文件的缩进是否正确,并将最新版本的文件提交并推送到存储库中。尽管进行了这些检查,但工作流仍未等待手动交互。
我希望能够得到任何关于为什么workflow_dispatch事件不等待手动操作以及如何使其按预期手动触发的见解或建议。
2个回答

2

工作流根据on配置触发,如果满足任何通知条件。

文档:触发工作流的事件

在您的情况下,使用以下配置:

on:
  pull_request:
    types:
      - opened
  workflow_dispatch:

如果满足以下两个条件之一,您实际上允许工作流程触发:

  1. 打开拉取请求:参考

  2. 手动触发工作流(通过GitHub API、GitHub UI或Github CLI):参考

如果您只想手动触发工作流,请仅保留workflow_dispatch配置:

on:
  workflow_dispatch:

如需更多信息,您还可以在文档中查看如何手动触发工作流程

请注意,GitHub Actions 还有一个部署手动审批配置,需要在工作流程运行期间获得审核人的批准才能继续其过程。


1

您已经为操作触发器配置了2个条件

on:
  pull_request:
    types:
      - opened
  workflow_dispatch:
  1. 在 pull_request 打开时
  2. 在 workflow_dispatch 上

你可以删除 1,这样当任何 pull request 打开时,你的工作流不会自动运行。

workflow_dispatch is the keyword you need to run a GitHub Action on demand, without having to push or create a pull request.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接