小编dak*_*aks的帖子

声明式詹金斯管道;如何声明变量并在脚本或邮件通知中使用它?

(下面更新)

我有一个声明性管道工作,可以接受VERSION参数。

pipeline {
  parameters {
    string(name: VERSION, defaultValue: '')
  }

  // ...
}
Run Code Online (Sandbox Code Playgroud)

如果没有给出VERSION,例如当Gitlab发送一个钩子到这个作业时,我想从git计算它,所以我做这样的事情

stages {
  stage('Prepare') {
    steps {
      // ...
      if (! env.VERSION) {
        VERSION = sh(script: "git describe", returnStdout: true).trim()
      }
    }
  }
}       
Run Code Online (Sandbox Code Playgroud)

现在我想“注入”这个变量

  • 我的构建脚本。它需要在环境变量中找到“ VERSION”
  • 给詹金斯邮件通知者。并获取主题或正文中的$ {VERSION}

我试图用更改上面的代码

stages {
  stage('Prepare') {
    steps {
      // ...
      if (! env.VERSION) {
        env.VERSION = sh(script: "git describe", returnStdout: true).trim()
      }
    }
  }
}       
Run Code Online (Sandbox Code Playgroud)

得到这个错误 groovy.lang.MissingPropertyException: No such property: VERSION for class: groovy.lang.Binding

然后,我尝试在下面添加一个“环境”步骤

environment {
    VERSION …
Run Code Online (Sandbox Code Playgroud)

environment-variables jenkins jenkins-pipeline

7
推荐指数
1
解决办法
1万
查看次数