【问题标题】:GitHub Actions tag filter with branch filter带有分支过滤器的 GitHub Actions 标记过滤器
【发布时间】:2020-01-17 16:13:35
【问题描述】:

GitHub 操作允许使用分支和标签过滤器,但它们似乎不能一起使用。

例如,此工作流在推送到主带有标签的推送上运行。

name: npm Publish

on:
  push:
    branches:
      - master
    tags:
      - v*

我想设置一个发布工作流程,该工作流程在标记推送到主服务器上运行,而不仅仅是一个或另一个。如何做到这一点?

【问题讨论】:

  • master 上是否有任何没有的标签?因为我在文档中看不到像您正在寻找的那样做 AND 的方法,但是如果您的所有 v* 标签都在 master 分支上,那么您可以尝试省略 branches: master 并查看是否有效。 docs 表示“仅定义 tags:branches: 中的一个将意味着工作流会跳过影响其他类型引用的事件。”
  • 从文档看来这是不可能的。您可能可以在工作步骤中使用if 条件,但这可能有点麻烦。一种选择是简单地使用on: release 而不是on: push 来触发工作流。那么它只会在你发布一个版本时触发,它在主分支上标记。
  • @peterevans 我没有看到那个解决方案。我觉得这已经足够接近,值得回答
  • @Kyeotic 添加了答案以扩展我的评论。

标签: github-actions


【解决方案1】:

一种解决方案是使用on: release 而不是on: push。当通过 GitHub UI 发布版本时,这将触发工作流执行。当您在 GitHub 上发布发布时,它会使用您指定的发布版本标记 master 分支。因此,工作流的每次执行都保证是master 分支上的标记提交。

name: npm Publish

on: release

【讨论】:

  • 这是我见过的最接近解决方案的方法。
猜你喜欢
  • 2016-09-07
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多