在 Bitbucket 中创建 PR 时是否可以运行 Jenkins 管道。 管道应该为源分支运行。 如果PR从feature提升到master。管道应运行功能分支的 Jenkinsfile。
Jenkins 应该触发一个作业,该作业将自动检测源分支并为源分支运行作业。 即使提出 100 个 PR,它也应该自动检测源分支并运行源分支本身的 Jekinsfile。
注意:所有功能分支都以 feature_**** 开头。
请帮助我提出答案或任何有用的资源来实现上述要求。
通过检测每个 PR 来运行作业相当简单。然而,基于分支的 Jenkinsfile 运行它不会那么简单。这是因为 Jenkinsfile 用于启动管道的其余部分,因此一旦启动,阶段和步骤就无法更改。
对于检测 PR,如果您的 Bitbucket 实例能够访问您的 Jenkins 实例,您可以使用 Bitbucket 插件和传入的 Webhook。如果没有,您可以创建一个每隔几分钟运行一次的轮询作业,并检查是否已创建新的 PR(或者现有的 PR 是否有新的提交)。如果有,则开始 Jenkins 构建。在 Jenkins 构建结束时,使用 Bitbucket API 将最新提交的构建状态设置为成功或失败(取决于作业结果)。然后,下次轮询 PR 时,您可以使用此状态来查看最后一次提交是否已构建。