私はいくつかのDockerイメージを作成しようとしています。そのために、Mavenのpom.xmlファイルで指定されたバージョン番号をタグとして使用したいと考えています。しかし、私は宣言的なJenkinsのパイプラインにはまったく新しいので、環境変数をどのように変更すればVERSIONにすべての段階で正しいバージョンが含まれるかを理解できません。あなたが持っているので、http://docs.groovy-lang.org/latest/html/documentation/#_string_interpolationJenkins宣言パイプライン環境変数を変更するにはどうすればよいですか?
:
この
は、問題がsh 'cp ../../../target/whales-microservice-${VERSION}.jar whales-microservice.jar'
単一引用符は、グルーヴィーで変数を展開しません声明の単一引用符で私のコード
#!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: '[email protected]: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}"
}
}
}
}
}
}
あなたの問題は何ですか? 'VERSION = pom.version'で割り当てられたバージョン番号が' Build Docker images 'ステージのVERSIONに含まれていませんか? – haschibaschi
それは確かに問題です。これは、[Javaコードのビルドとテスト]段階でのみ使用できます。 –