我希望能够让一个动作在除master之外的任何给定分支上运行。我知道有一个预构建的filter动作,但我希望完全相反。更像是GitLab的except关键字。由于这不在官方文档中,有人准备了一个不错的解决方案吗?非常感谢。
filter
except
rm5edbpk1#
更新:Samy's answer中描述了一个更新的过滤器,它提供了一种更简洁的实现方式。
文档现已更新,包含更多信息:当您指定branches或tags过滤器时,只有当至少有一个模式匹配时,工作流才会运行。对与定义的模式不匹配的分支或标签的任何更改都不会触发工作流。定义模式的顺序很重要:
branches
tags
因此,为了排除master,您需要确保首先包含匹配所有内容的模式:
master
on: push: branches: - '*' # matches every branch that doesn't contain a '/' - '*/*' # matches every branch containing a single '/' - '**' # matches every branch - '!master' # excludes master
rnmwe5a22#
现在有一个branches-ignore选项:
branches-ignore
on: push: branches-ignore: - master
不能在同一工作流中使用branches-ignore和branches。
2条答案
按热度按时间rm5edbpk1#
更新:Samy's answer中描述了一个更新的过滤器,它提供了一种更简洁的实现方式。
文档现已更新,包含更多信息:
当您指定
branches
或tags
过滤器时,只有当至少有一个模式匹配时,工作流才会运行。对与定义的模式不匹配的分支或标签的任何更改都不会触发工作流。定义模式的顺序很重要:因此,为了排除
master
,您需要确保首先包含匹配所有内容的模式:rnmwe5a22#
现在有一个
branches-ignore
选项:不能在同一工作流中使用
branches-ignore
和branches
。