如何在单独的 Jenkins master 中的另一个 jenkins 管道 B 中调用一个 jenkins 管道 A?

How to invoke a jenkins pipeline A in another jenkins pipeline B in separate Jenkins master?

重要的是 单独的 Jenkins master。 我期待

script { build job: 'https://second_instance_jenkins.mycompany.com/jobs/alt_build_job', parameters: [] }

但是这不起作用,我无法连接到其他主服务器,我也不知道如何使用此语法正确进行 AUTH。有大量示例如何在同一个 Jenkins 中调用另一个作业,但不是在单独的独立 Jenkins master 中!

谢谢。

您可以启用选项 Trigger builds remotely 以通过 Jenkins API 触发您的作业。选中该选项后,您将获得需要调用的 url 以触发构建

Use the following URL to trigger build remotely: JENKINS_URL/job/BranchDiffTests/build?token=TOKEN_NAME

可以找到详细说明here

正确配置作业后,您可以发送一个以令牌作为参数的 GET 请求,并远程执行作业。使用 Bash、Powershell 或您在管道中使用的任何脚本语言来创建对此端点的 API 调用,调用完成后,作业应开始 运行.

找到了。 我必须按照此处所述使用 Parameterized-Remote-Trigger

https://www.jenkins.io/doc/pipeline/steps/Parameterized-Remote-Trigger/

我还要 post 我的工作流水线步骤。我希望手册中有更多示例。

    steps {
        triggerRemoteJob auth: CredentialsAuth(credentials: '7f89634523-1b42-440d-8053-aa3d523523441d'), 
            enhancedLogging: true, 
            job: 'Build/my-integration', 
            remoteJenkinsUrl: 'https://second_instance_jenkins.mycompany.com/', 
            useCrumbCache: true,
            httpGetReadTimeout: 600,
            httpPostReadTimeout: 600,
            useJobInfoCache: true,
            parameters: '''
                PROJECT_NAME=core
                BUILD_TYPE=Debug
                PLATFORM=Linux
                '''
        }