如何让JFrog Pipelines仅按GitRepo资源指定规则触发构建?
问题分析与解决方案
核心问题定位
你当前的配置逻辑和需求完全相反:
- 你用了
files.include匹配templates/pipelines/下的文件,结合buildOn.pullRequestCreate: true,会导致只要PR包含这些文件就触发构建,但你的需求是包含这些文件时不触发。 - 另外,正则表达式存在语法问题:
\/(pipelines)\/*.+$里的/*是无效写法,*需要匹配前置字符,这里应该写成/.+来匹配文件夹下的任意文件。
修正后的配置
把files.include改为files.exclude,同时修正正则表达式:
- name: platform_pr type: GitRepo configuration: gitProvider: myGithub path: dev/helm-values files: exclude: ^templates/pipelines/.+$ # 用单引号无需转义/,用双引号则需写成"^templates\\/pipelines\\/.+$" branches: include: ^master$ buildOn: commit: false pullRequestCreate: true tagCreate: false cancelPendingRunsOn: newCommit: false pullRequestUpdate: true
关键细节说明
files.exclude的作用:指定哪些文件变更会被排除,当PR中只有这些被排除的文件变更时,不会触发构建;如果PR还有其他未被排除的文件变更,依然会触发。- 正则规则:
^templates/pipelines/.+$精准匹配以templates/pipelines/开头的所有文件,覆盖该文件夹下的所有层级内容。 - 验证方式:提交仅修改
templates/pipelines/下文件的PR,确认未触发构建;再提交包含其他文件修改的PR,检查是否正常触发,以此验证配置生效。
内容的提问来源于stack exchange,提问作者nehamishra25
相关产品推荐
相关产品推荐

