Jenkins Multibranch 管道拉取请求

Jenkins Multibranch pipeline pull request

我正在为 pullrequest 使用多分支管道。创建 pr 时,它会触发 pullrequest 作业。无论如何,是否仅针对特定的拉取请求而不是全部触发作业。 示例:我有三个分支 develop、fb 和 master。我只想在创建从 develop 到 master 的 pull request 时触发作业,而不是在创建从 fb 到 develop 或 fb 到 master 的 pullrequest 时触发作业。

在这种情况下,您可能想要 运行 您的管道,分析基础分支,如果基础分支不符合您的喜好,则停止。

环境变量 CHANGE_ID 由 github 分支源插件设置,以防分支是拉取请求。

如果已设置,您可以探索名为 pullRequest 的全局对象,例如像这样:

    if (env.CHANGE_ID) {
        echo("Looking for PR: PR detected, change id is ${env.CHANGE_ID}")
        def prBase = pullRequest.base
        if (prBase != 'master') {
            currentBuild.result = 'ABORTED'
            error("This PR is over ${prBase} branch, not 'master'. Aborting.")
        }
    }