dak*_*aks 7 environment-variables jenkins jenkins-pipeline
(下面更新)
我有一个声明性管道工作,可以接受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)
现在我想“注入”这个变量
我试图用更改上面的代码
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 = ${VERSION}
}
Run Code Online (Sandbox Code Playgroud)
但这并不能解决我的问题。
我正在寻找解决的任何帮助。
更新
我现在有一个工作管道,看起来像
pipeline {
agent any
parameters {
string(name: 'VERSION', defaultValue: '')
}
environment {
def VERSION = "${params.VERSION}"
}
stages {
stage('Prepare & Checkout') {
steps {
script {
if (! env.VERSION) {
VERSION = sh(script: "date", returnStdout: true).trim()
}
echo "** version: ${VERSION} **"
}
}
}
stage('Build') {
steps {
// sh "./build.sh"
echo "** version2: ${VERSION} **"
}
}
} // stages
post {
always {
mail to: 'foo@example.com',
subject: "SUCCESS: ${VERSION}",
body: """<html><body><p>SUCCESS</p></body></html>""",
mimeType: 'text/html',
charset: 'UTF-8'
deleteDir()
}
}
} // pipeline
Run Code Online (Sandbox Code Playgroud)
我需要添加“环境”步骤,以便能够在所有阶段中获得$ VERSION(不仅在被操纵的阶段中)。
我仍然需要找到一种方法将此$ VERSION变量注入环境变量中,以便我的构建脚本可以找到它。
如果您想将变量注入到环境中以便以后可以使用它,您可以定义另一个等于 env.VERSION 或 shell scrip 的输出的变量。然后在管道中使用该变量,例如:
pipeline {
parameters {
string(name: VERSION, defaultValue: '')
}
def version = env.VERSION
stages {
stage('Prepare') {
steps {
// ...
if (!version) {
version = sh(script: "git describe", returnStdout: true).trim()
}
}
}
mail subject: "$version build succeeded", ...
}
Run Code Online (Sandbox Code Playgroud)
如果您希望其他作业在构建运行后能够访问 VERSION 的值,您可以将其写入文件并存档。
编辑:为了使您的脚本能够使用版本变量,您可以使脚本将版本作为参数,也可以使用withEnv 步骤。
| 归档时间: |
|
| 查看次数: |
12574 次 |
| 最近记录: |