如何在单独的 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
'''
}
重要的是 单独的 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
'''
}