如何在Jenkins管道脚本中使用"参数化远程触发插件"?

use*_*897 5 jenkins jenkins-plugins jenkins-pipeline

我试过搜索,但没有找到任何例子.我尝试了https://jenkins.io/doc/pipeline/examples/#trigger-job-on-all-nodes,并将其用于同一个Jenkins上的不同节点.我想触发另一个Jenkins的构建.我在Jenkins的系统配置中配置了远程主机和身份验证.如何在Jenkins管道脚本中调用"参数化远程触发插件"?

hak*_*iri 5

似乎是一个开放的bug:https://issues.jenkins-ci.org/browse/JENKINS-38657

作为一种解决方法,您可以在本地创建另一个旧类型的作业,并使用旧学校非管道脚本方式的插件.然后在您的管道脚本中,您只需触发此作业.我知道这是一个丑陋的适配器,但是你已经参数化了这个适配器并且几乎可以运行它并运行;)

编辑:

错误38657已经关闭,该插件自2018年5月16日起作为管道步骤提供.使用方法应该像以下一样简单:

//Trigger remote job
def handle = triggerRemoteJob(remoteJenkinsName: 'remoteJenkins', job: 'RemoteJob')
Run Code Online (Sandbox Code Playgroud)

有关triggerRemoteJob步骤的更多信息


bri*_*urg 5

对于任何想知道如何使用声明式 Jenkinsfile 语法执行此操作的人:

steps {
   triggerRemoteJob remoteJenkinsName: 'configured-remote-jenkins-name', job: 'trigger-job-folder/trigger-job-name', blockBuildUntilComplete: true
}
Run Code Online (Sandbox Code Playgroud)

  • @kayleeFrye_onDeck 对于令牌,您需要这样的东西: import hudson.util.Secret ... def buildResult = 'org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep'( remoteJenkinsUrl: "the_url", job: "the_job" , 参数: 'MY_PARAM=value', auth: TokenAuth(apiToken: Secret.fromString("the-token"), userName: "用户名") ) (2认同)