继续此操作: Jenkins管道阶段-传递整个文件
我现在不得不将数字设置为节点名称的一部分,该数字包含在另一个节点的文件中。
例如,如果属性文件包含数字6,则必须在名为DEV-SME-6的节点上运行作业。
有没有办法让我:在stage1中,从主节点上的文件中读取编号,如下所示:
Env_number = readFile 'file_containing_an_integer_between_2_and_7.txt'
然后在stage2中, 在 节点名称中使用该数字指定部分节点名称,如下所示:
node('DEV-SME-$Env_number')
??
这不适用于unstash(在阶段中指定节点名称之前尝试进行unstash会给我一个错误:FilePath.hudson丢失
在尝试了一些东西之后,我当前的代码是这样的:
stage "first stage" node ('master'){ try{ env.Env_number = sh ' echo DEV$(cat file_containing_an_integer_between_2_and_7.txt ' catch(error) echo "failed to set variable Env_number " }} stage "second stage" node('${Env_number}') { try{ command1 command2 }}
这给了我“没有标签为’null’的节点”
成功!没有sh脚本,带有readFile:
stage "first stage" node ('master'){ try{ env.Env_number = readFile 'file_containing_an_integer_between_2_and_7.txt' catch(error) echo "failed to set variable Env_number " }} stage "second stage" node("DEV${Env_number}") { try{ command1 command2 }}