jenkins - 如何使用配置文件提供程序插件从 Jenkins 管道内的配置文件中读取属性

标签 jenkins jenkins-pipeline jenkins-plugins configuration-files

我想用一个简单的属性配置文件参数化我的 Jenkins 管道

skip_tests=true

我已添加到 Jenkins 配置文件管理中:

config file management screenshot

在我的管道中,我正在导入此文件并尝试使用 Jenkins 管道配置文件插件从中读取。
node('my-swarm') {

 MY_CONFIG = '27206b95-d69b-4494-a430-0a23483a6408'

 try {

     stage('prepare') {
         configFileProvider([configFile(fileId: "$MY_CONFIG", variable: 'skip_tests')]) {
             echo $skip_tests
             assert $skip_tests == 'true'
         }
     }
 } catch (Exception e) {
     currentBuild.result = 'FAILURE'
     print e
 }
}

这会导致错误:
provisioning config files...
copy managed file [my.properties] to file:/home/jenkins/build/workspace/my-workspace@tmp/config7043792000148664559tmp
[Pipeline] {
[Pipeline] }
Deleting 1 temporary files
[Pipeline] // configFileProvider
[Pipeline] }
[Pipeline] // stage
[Pipeline] echo
groovy.lang.MissingPropertyException: No such property: $skip_tests for 
class: groovy.lang.Binding

任何想法我在这里做错了什么?

最佳答案

在其他答案和 How to read properties file from Jenkins 2.0 pipeline script 的帮助下我发现以下代码可以工作:

configFileProvider([configFile(fileId: "$PBD1_CONFIG", variable: 'configFile')]) {
     def props = readProperties file: "$configFile"
     def skip_tests = props['skip_tests']
     if (skip_tests == 'true') {
        print 'skipping tests'
     } else {
        print 'running tests'
     }
}

我不得不使用 Jenkins 的 readProperties Pipeline Utility Steps Plugin .

关于jenkins - 如何使用配置文件提供程序插件从 Jenkins 管道内的配置文件中读取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904636/

相关文章:

java - 在groovy文件之间传递变量

jenkins - 如何在 Jenkins 矩阵项目中绘制基准数据

maven - 在管道中传递MAVEN_OPTS

Jenkins -如何为特定工作保留执行人

jenkins - 如何在jenkins中获取docker容器的IP地址?

build - docker构建发布插件出错

selenium - Sikuli,当我从开发机器运行它时,在 Jenkins : Allow the browser to be launched in the foreground, 上进行 Selenium 测试?

jenkins - 从 jenkins 管道 blueocean 手动更新提交和分支属性

Jenkins groovy 管道 - 检索构建作业的构建号

docker - 使用 Docker Pipeline Plugin 时,在 Jenkins 中停止和删除 docker 容器的正确方法是什么?