diff --git a/Jenkinsfile b/Jenkinsfile index 622a586831a0b9a413efe51b7e6d47ab5ce459e1..7c7252d4556b2ed275460d6ebb08716f49d17dce 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,6 +13,7 @@ pipeline { IMAGE_TAG = generateImageTag() HELM_CHART_VERSION = generateHelmChartVersion() BUILD_TAG = generateBuildTag() + BUILD_PROFILE = setBuildProfile() } options { @@ -78,7 +79,7 @@ pipeline { configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - sh 'mvn -s $MAVEN_SETTINGS spring-boot:build-image -DskipTests -Dmaven.wagon.http.retryHandler.count=3 -Dimagetag=$IMAGE_TAG -Dbuildtag=$BUILD_TAG -Dspring-boot.build-image.publish=true -Duser=${USER} -Dpassword=${PASSWORD}' + sh 'mvn -s $MAVEN_SETTINGS spring-boot:build-image -DskipTests -Dmaven.wagon.http.retryHandler.count=3 -P $BUILD_PROFILE -Dspring-boot.build-image.publish=true -Duser=${USER} -Dpassword=${PASSWORD}' } } } @@ -177,6 +178,16 @@ String getPomVersion() { return pom.version } +String setBuildProfile() { + if (isMasterBranch()) { + return "dev" + } else if (isReleaseBranch()) { + return "release" + } else { + return "feature" + } +} + Void sendFailureMessage() { def room = getRoom() diff --git a/pom.xml b/pom.xml index a0ba0f09bbf3e64fe0b38785733ebf73112d6049..5a3f9a950c524ff48741d8262f46df4f46503550 100644 --- a/pom.xml +++ b/pom.xml @@ -52,33 +52,96 @@ <scope>test</scope> </dependency> </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - <configuration> - <image> - <name>docker.ozg-sh.de/administration:${imagetag}</name> - <tags>${buildtag}</tags> - <publish>true</publish> - </image> - <docker> - <publishRegistry> - <username>${user}</username> - <password>${password}</password> - </publishRegistry> - </docker> - <excludes> - <exclude> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </exclude> - </excludes> - </configuration> - </plugin> - </plugins> - </build> + <profiles> + <profile> + <id>feature</id> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <image> + <name>${spring-boot.build-image.imageName}:${env.BRANCH_NAME}-${project.version}</name> + <publish>true</publish> + </image> + <docker> + <publishRegistry> + <username>${user}</username> + <password>${password}</password> + </publishRegistry> + </docker> + <excludes> + <exclude> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>dev</id> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <image> + <name>${spring-boot.build-image.imageName}:${env.BRANCH_NAME}-${project.version}</name> + <tags>${spring-boot.build-image.imageName}:snapshot-latest</tags> + <publish>true</publish> + </image> + <docker> + <publishRegistry> + <username>${user}</username> + <password>${password}</password> + </publishRegistry> + </docker> + <excludes> + <exclude> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>release</id> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <image> + <name>${spring-boot.build-image.imageName}:${env.BRANCH_NAME}-${project.version}</name> + <tags>${spring-boot.build-image.imageName}:latest</tags> + <publish>true</publish> + </image> + <docker> + <publishRegistry> + <username>${user}</username> + <password>${password}</password> + </publishRegistry> + </docker> + <excludes> + <exclude> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project>