Jenkins Groovy:变量在管道中添加新行

时间:2018-09-20 20:40:07

标签: jenkins groovy jenkins-pipeline jenkins-cli

我是Jenkins管道的新手,我的任务是使用cft创建aws云形成堆栈,并且堆栈名称应为1-9999之间的随机数,因为我正在使用 shuf 命令生成数字并存储在变量中。

UserDefaults.standard.synchronize()

我能够打印变量,但是当我在堆栈创建管道中使用此变量时,会自动添加新行。

您能建议我在这里做错了吗?

pipeline {
agent  { node { label 'ansible-serverless' } }
stages {
   stage('Verify CFT') {
         options {
         withAWS(credentials:'jenkin_user_s3_9834',region:'us-east-1')
            }
        steps {
  node ('jenkins_ec2_9835'){
            script {
                    sh '''shuf -i 1-10000 -n 1 > outFile'''
                //    curDate = readFile 'outFile'.trim()
                    curDate = readFile 'outFile'.replaceAll("(?m)^[ \t]*\r?\n", "")
                    echo "The current number is ${curDate}"
                    }
                  sh "echo ${curDate}"

          cfnUpdate(url:'https://s3.amazonaws.com/artifacts/100GB_DB_ecosystem_full_enterprise.json', paramsFile:'/tmp/parameter-56.json',stack:"""CICD"${curDate}"-test""")
          cfnDescribe(stack:"CICD"${curDate}"-test")
         }
        }
       }
     }
   }

1 个答案:

答案 0 :(得分:0)

问题似乎出在字符串插值(http://docs.groovy-lang.org/latest/html/documentation/#_string_interpolation)上。

尝试像这样替换curDate变量:

cfnDescribe(stack:"CICD${curDate}-test")