GitHub Actions: how to target all branches EXCEPT master?

一笑奈何 提交于 2020-06-24 22:41:32

问题


I want to be able to let an action run on any given branch except master. I am aware that there is a prebuilt filter action, but I want the exact opposite.

More like GitLab's except keyword. Since this is not inside the official docs, has anyone prepared a decent workaround?

Thank you very much.


回答1:


The documentation has been updated with more information now:

When you specify a branches or tags filter, the workflow only runs if at least one pattern matches. Any changes to branches or tags that don't match a defined pattern will not trigger a workflow. The order that you define patterns matters:

  • A matching negative pattern after a positive match will exclude the ref again.
  • A matching positive pattern after a negative match will include the ref again.

So in order to exclude master, you need to ensure that a pattern matching everything is included first:

on:
  push:
    branches:    
      - '*'         # matches every branch that doesn't contain a '/'
      - '*/*'       # matches every branch containing a single '/'
      - '**'        # matches every branch
      - '!master'   # excludes master



回答2:


It seems like this can be used: https://github.com/actions/bin/tree/master/filter#not



来源:https://stackoverflow.com/questions/57699839/github-actions-how-to-target-all-branches-except-master

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!