【问题标题】:Pass variable to JobDsl seed job (Jenkins) in scriptText?在scriptText中将变量传递给JobDsl种子作业(Jenkins)?
【发布时间】:2020-10-22 23:11:58
【问题描述】:

我正在开发一个项目,我必须使用 JCasC(配置为代码插件)配置 jenkins。 我必须创建一个工作,但我不能在脚本中传递变量。

我的代码:

      freeStyleJob("SEED") {
        parameters {
          stringParam("MY_PARAMETER", "defaultValue", "A parameter")
        }

        steps {
          jobDsl {
            scriptText('''
            job("seedJOB") {
              displayName('${MY_PARAMETER}') // don't work
              description("${MY_PARAMETER}") // don't work
            //description("$MY_PARAMETER")   // don't work
            //description('$MY_PARAMETER')   // don't work
            // i tried to use triple full quotes instead of triple single quote but it's not working...

              ... here the job...
            '''.stripIndent())
          }
        }

编辑:这里的最佳解决方案:

我在 """ 引号中编写 groovy 代码,所以如果我想评估变量:我不必输入 ${} 只需写下你的变量名: 解决方案:

      freeStyleJob("SEED") {
        parameters {
          stringParam("MY_PARAMETER", "defaultValue", "A parameter")
        }

        steps {
          jobDsl {
            scriptText('''
            job("seedJOB") {
              displayName('MY_PARAMETER) // solution

              ... here the job...
            '''.stripIndent())
          }
        }

简单!

【问题讨论】:

    标签: jenkins jenkins-job-dsl jcasc


    【解决方案1】:

    您可以将其写入文件吗?你会在你的步骤中得到类似的东西:

    steps {
      shell('echo $DISPLAY_NAME > display_name.txt')
      jobDsl {
        scriptText('''
          job("seedjob") {
            String jobname = readFileFromWorkspace('display_name.txt').trim()
            displayName(jobname)
          }
        '''.stripIndent())
      }
    }
    

    您还可以使用 .properties 文件更正确地执行此操作。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 2020-12-05
      • 2015-01-14
      • 1970-01-01
      • 2020-09-24
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多