詹金斯:有没有办法将文件作为詹金斯构建参数加载?

时间:2021-05-07 19:11:05

标签: jenkins jenkins-plugins jenkins-groovy jenkins-job-dsl

我目前有一个包含文本文件的 git 存储库。我想将其内容加载为 jenkins 作业的构建参数。 一种方法是在 Jenkins 多行字符串参数中手动复制此文件的内容。但是,由于内容已经在 git 中,我想保持耦合。

不确定,是否可以使用 Jenkins? 我正在使用 Jenkins Job DSL 来生成作业。

2 个答案:

答案 0 :(得分:1)

EDIT :您可以在以下答案 Jenkins dynamic declarative pipeline parameters

中找到几种不同的实现方式

我认为您可以通过以下方式实现它(脚本化管道)。

node {
    stage("read file") {
        sh('echo -n "some text" > afile.txt')
        def fileContent = readFile('afile.txt')
        properties([
            parameters([
                string(name: 'FILE_CONTENT', defaultValue: fileContent)
            ])
        ])
    }
    stage("Display properties") {
        echo("${params.FILE_CONTENT}")
    }
}

第一次执行时没有参数选择。第二次,您可以选择使用参数构建,内容将是您文件的内容。

这种方法的坏处是它总是与之前的执行同步,即当您在更改文件内容的提交上开始构建时,它将使用文件内容预填充参数为每次构建的最后一次执行。

我所知道的唯一方法是将您的管道拆分为两个管道。第一个读取文件的内容,然后使用 build 步骤将文件内容作为构建参数触发第二个。

如果您找到更好的方法,请告诉我们。

答案 1 :(得分:0)

为什么不让 jenkins 将 repo 作为 Job 的一部分提取,然后解析参数的内容(比如 json,例如来自 repo 中的文件),然后继续使用这些参数执行?

相关问题