如何配置GitHub Actions仅触发特定源分支向main的PR工作流
实现仅触发「源分支含_important_且目标分支为main」的PR工作流
GitHub Actions 里没有你设想的 source_branches 配置项,要达成需求,得用「目标分支限定 + Job 条件过滤」的组合方式:
完整配置示例
name: "important-feature-to-main" on: pull_request: # 先限定只有向main分支发起的PR才进入工作流触发流程 branches: - 'main' jobs: execute-workflow: runs-on: ubuntu-latest # 核心过滤规则:仅当PR的源分支包含_important_时才执行该Job if: contains(github.head_ref, '_important_') steps: - name: 拉取代码 uses: actions/checkout@v4 # 在这里添加你需要执行的任务步骤,比如代码检查、构建测试等
细节说明
github.head_ref是 GitHub 提供的内置变量,专门指代 PR 的源分支名称;- 如果你需要更精准的分支匹配(比如严格匹配
feature_important_数字格式),可以用正则匹配替代contains:if: matches('^feature_important_\\d+$', github.head_ref) - 这种方式是先让所有向main发起的PR触发工作流,但只有符合源分支规则的Job才会执行,避免了不必要的资源浪费,也比在触发阶段过滤更灵活。
内容的提问来源于stack exchange,提问作者Sven van den Boogaart
相关产品推荐
相关产品推荐

