gpt4 book ai didi

jenkins - 如何更改 Jenkins 声明式管道环境变量?

转载 作者:行者123 更新时间:2023-12-03 06:37:12 25 4
gpt4 key购买 nike

我正在尝试创建一些 Docker 镜像。为此,我想使用 Maven pom.xml 文件中指定的版本号作为标签。然而,我对声明式 Jenkins 管道相当陌生,我不知道如何更改我的环境变量,以便 VERSION 包含所有阶段的正确版本。

这是我的代码

#!groovy

pipeline {
tools {
maven 'maven 3.3.9'
jdk 'Java 1.8'
}
environment {
VERSION = '0.0.0'
}

agent any

stages {
stage('Checkout') {
steps {
git branch: 'master', credentialsId: '290dd8ee-2381-4c5b-8d33-5631d03ee7be', url: 'git@gitlab.crosslang.local:company/SOME-API.git'
sh "git clean -f && git reset --hard origin/master"
}
}
stage('Build and Test Java code') {
steps {
script {
def pom = readMavenPom file: 'pom.xml'
VERSION = pom.version
}
echo "${VERSION}"
sh "mvn clean install -DskipTests"
}
}
stage('Build Docker images') {
steps {
dir('whales-microservice/src/main/docker'){
sh 'cp ../../../target/whales-microservice-${VERSION}.jar whales-microservice.jar'
script {
docker.build "company/whales-microservice:${VERSION}"
}
}
}
}
}
}

最佳答案

问题是语句的单引号

sh 'cp ../../../target/whales-microservice-${VERSION}.jar whales-microservice.jar'

单引号不会扩展 groovy 中的变量:http://docs.groovy-lang.org/latest/html/documentation/#_string_interpolation

所以你必须双引号你的 shell 语句:

sh "cp ../../../target/whales-microservice-${VERSION}.jar whales-microservice.jar"

关于jenkins - 如何更改 Jenkins 声明式管道环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43871899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com