GitHub Actions 在推送到所有分支时运行

Pau*_*erg 15 continuous-integration glob github-actions

容易在任何推送或拉取请求上运行 GitHub 操作:

# Triggers the workflow on push or pull request events
on: [push, pull_request]
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将运行限制为针对特定基本引用打开的拉取请求,同时允许在所有分支上运行怎么办?

我想过这个:

on:
  push:
    branches:
      - "*"
  pull_request:
    branches:
      - "develop"
      - "staging"
Run Code Online (Sandbox Code Playgroud)

但它没有用。我把这个 Action 添加到了一个特性分支,GitHub 没有接。

我的球有什么问题吗?为什么“*”不起作用?

Ben*_* W. 31

完全放弃对推送的限制意味着触发所有推送(提交和标签):

on:
  push:
  pull_request:
    branches:
      - develop
      - staging

jobs:
  print:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Running!"
Run Code Online (Sandbox Code Playgroud)

  • 注意:当您删除“分支”时,工作流程也会运行标签推送,而不仅仅是分支推送。 (3认同)

Pau*_*erg 18

发布问题后,我找到了过滤器模式备忘单

'*':匹配所有不包含斜杠 (/) 的分支和标签名称。* 字符是 YAML 中的特殊字符。当您使用 * 开始模式 > 时,您必须使用引号。

'**':匹配所有分支和标签名称。这是不使用分支或标签过滤器时的默认行为。

碰巧我正在测试的分支包含一个斜杠 (/),所以一个星号 (*) 是不够的。我切换到两个星号 (**),现在可以使用了。

  • 您还可以完全删除“branches”对象以触发任何分支的事件。 (5认同)