Github工作流具有多种类型的相同事件



我很难弄清楚触发不同事件类型的语法。

例如,下面给了我一个"重复映射键"。第二个pull_request触发器错误。

on:
pull_request:
types: [opened, reopened]
branches:
- main
- develop

pull_request:
types [synchronize]
branches:
- main
- develop
paths: ['**.h', '**.cpp', '**.hpp', '**.yaml', '**CMakeLists.txt', '**Makefile', '**.spec', '**.py', '**Dockerfile', '**conanfile.txt']

我希望工作流总是在第一次打开(或重新打开)时运行,但随后当分支被同步时,它应该只在更改是指定的文件类型之一时运行。

澄清一下,我已经有了。Push事件钩子,为了简洁,这里没有显示。

我相信我需要一个pull_request。同步事件处理更新

在文档中找不到关于如何做到这一点的任何内容。我尝试组合两个pull_requests触发器,但随后我得到了一个错误,即"类型"。密钥正在复制。

任何想法?

文档确实讨论了基于多个事件的触发,但没有讨论相同类型的多个事件,因此不完全清楚这是否可能(除了验证错误之外)。

要做到这一点,您需要定义三个不同的工作流,一个具有每种不同类型的事件及其过滤器,另一个具有使用workflow_call事件的可重用工作流。

#workflow-1
on:
pull_request:
types: [opened, reopened]
branches:
- main
- develop
jobs:
job:
uses: ./.github/workflows/workflow-3.yml
#workflow-2
on:
pull_request:
types: [synchronize]
branches:
- main
- develop
paths: ['**.h', '**.cpp', '**.hpp', '**.yaml', '**CMakeLists.txt', '**Makefile', '**.spec', '**.py', '**Dockerfile', '**conanfile.txt']
jobs:
job:
uses: ./.github/workflows/workflow-3.yml
#workflow-3
on:
workflow_call:
jobs:
job:
steps:
- run: do stuff

最新更新