我注意到JSL脚本只在Jenkins上执行,是否可以在Jenkins代理上运行JSL脚本?
我的管道中有多个阶段,我希望在不同的Jenkins代理节点上运行这些阶段。
我使用JSL的主要动机是在使用"replay“进行开发时使用端到端管道可测性,在这里我可以修改Jenkinsfile以及JSL的脚本。
这是我管道的片段--
pipeline {
agent { label 'scdc-generic-w10x64' }
options {
timestamps()
}
stages {
stage('Log ip') {
steps {
script {
bat "ipconfig -all" // *** Gets executed on Jenkins Agent ***
foo = jsl.foo.new(this) // foo is a Groovy class in JSL
foo.logIpAddress() // *** Gets executed on Jenkins Master ***
}
}
}
}
post {
always {
cleanWs()
}
}
}发布于 2021-07-15 22:19:26
我也把这个问题发布在JenkinsUser谷歌集团上。JSL脚本只在Jenkins Master上执行,这是由设计完成的。
关于-- https://groups.google.com/g/jenkinsci-users/c/t66PLaAvcgw/m/Ruo97K2AAgAJ的更多细节
发布于 2021-07-13 04:54:19
是的,您可以使用agent{label <Your agent name>}在不同的代理上执行不同的阶段。您还需要确保您的共享库也在代理中。
注意:在那个阶段,所有的事情都将在那个代理上执行。
stage('Log ip') {
agent { label "<Your agent name>" }
steps {
script {
bat "ipconfig -all"
foo = jsl.foo.new(this)
foo.logIpAddress()
}
}
}https://stackoverflow.com/questions/68355310
复制相似问题