1

我在脚本管道中有一段代码,我希望将其转换为声明性管道

rlsSpec = sprintf(
      readFile('ara-specs/release-spec-template.json'), 
      [currentVersion.contains('SNAPSHOT'), currentVersion.replace('-SNAPSHOT','')])
  writeFile file: 'release-spec.json', text: rlsSpec
  stash includes: '*spec.json', name: 'releaseSpecs'

我可以从脚本中读取和写入文件的 readJson 和 writeJson,但我无法转换 sprintf 片段,或者我没有太多关于如何转换该片段的信息。

我在读取 json 文件时所做的一切,更改 currentVersion 以替换 -SNAPSHOT 片段并将其写回 json 文件

你能帮我转换这件作品吗?

谢谢

4

1 回答 1

3

在 sprintf 中,您所做的就是将 json 文件作为文本文件读取并进行字符串替换。同样的事情可以在声明式 Jenkins 管道中实现为

pipeline {
    agent any
    stages {
        stage ('Print'){
            steps {
                script {
                     def inptext = readFile file: "ara-specs/release-spec-template.json" 
                     inptext = inptext.replaceAll("-SNAPSHOT", "")       
                     writeFile file: "release-spec.json", text: inptext
                }

            }
        }
    }
}
于 2018-02-16T03:29:33.953 回答