我在自由泳工作中使用了此选项,但是现在我的团队正朝着制定标准格式的方向发展,所以我不得不用Pipeline脚本编写所有的自由泳工作,而且我在Google上搜索了很多,但是却不知道如何写这个管道脚本中的选项。
答案 0 :(得分:1)
您可以使用triggerRemoteJob
管道步骤来触发远程Jenkins作业。
文档:https://jenkins.io/doc/pipeline/steps/Parameterized-Remote-Trigger/
这是一个简短的示例,说明了如何将此步骤与身份验证一起使用。我使用Jenkins用户令牌进行身份验证-令牌和用户名存储在ID为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
(混淆的ID ofc)的Jenkins凭证中。下例中的远程作业是通过单个参数foo
== qwe123
触发的,它配置为等待远程作业完成,如果失败,则触发远程作业的作业工作也会失败。
pipeline {
agent any
stages {
stage("Execute remote job") {
steps {
script {
def jobUrl = "https://remote-jenkins-host/job/remote-job-to-trigger/"
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', usernameVariable: 'USERNAME', passwordVariable: 'TOKEN']]) {
def handle = triggerRemoteJob job: jobUrl,
blockBuildUntilComplete: true,
shouldNotFailBuild: true,
parameters: "foo=qwe123",
auth: TokenAuth(apiToken: env.TOKEN, userName: env.USERNAME)
echo "Remote tests status: ${handle.buildStatus.toString()}"
}
}
}
}
}
}
希望有帮助。