我能够在 Jenkins 声明性管道中加载一个属性文件。在 echo 上,这些值也会在控制台输出中打印出来。我想使用属性文件中的值之一,比如 slavenode,作为 Jenkins 标签。但是,我不能这样做。我尝试过以下操作,但失败了:
stage ('echo variables'){
agent {label 'a_server_name'}
steps{
load "path_to_file\abc.properties"
echo "Hi"
echo "slave : ${SlaveNode}"
//executes successfully
}
stage ('Execute script'){
agent {label "$SlaveNode"}
steps{
echo "This is executing script"
}
// fails with error : There are no nodes with the label ‘SlaveNode’
我希望它在$SlaveNode上运行"执行脚本"阶段。
我相信你可以使用 Groovy 库和环境变量来做到这一点
以下是对我有用的代码:
steps{
node( SlaveNode as String )
{ sh """ echo "It is running on SlaveNode" """ }
}