一尘不染

Jenkins管道:在stage1中,从文件中读取编号,在stage2中,**在**节点名称内,请使用该编号

jenkins

继续此操作: 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’的节点”


阅读 308

收藏
2020-07-25

共1个答案

一尘不染

成功!没有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 
            }}
2020-07-25