11#! groovy
22
3- @Library (' github.com/red-panda-ci /jenkins-pipeline-library@v3.1.6 ' ) _
3+ @Library (' github.com/teecke /jenkins-pipeline-library@v3.4.1 ' ) _
44
55// Initialize global config
6- cfg = jplConfig(' dc-commit-validator' , ' bash' , ' ' , [email :' redpandaci+dc-commit-validator@gmail.com' ])
6+ cfg = jplConfig(' dc-commit-validator' , ' bash' , ' ' , [email : env. CIKAIROS_NOTIFY_EMAIL_TARGETS )
7+
8+ /**
9+ * Build and publish docker images
10+ *
11+ * @param nextReleaseNumber String Release number to be used as tag
12+ */
13+ def buildAndPublishDockerImage(nextReleaseNumber = " " ) {
14+ if (nextReleaseNumber == " " ) {
15+ nextReleaseNumber = sh (script : " kd get-next-release-number ." , returnStdout : true ). trim(). substring(1 )
16+ }
17+ docker. withRegistry(" " , ' cikairos-docker-credentials' ) {
18+ def customImage = docker. build(" teecke/${ cfg.projectName} :${ nextReleaseNumber} " , " --pull --no-cache ${ cfg.projectName.substring(3)} " )
19+ customImage. push()
20+ if (nextReleaseNumber != " beta" ) {
21+ customImage. push(' latest' )
22+ }
23+ }
24+ }
725
826pipeline {
9- agent none
27+ agent { label ' docker ' }
1028
1129 stages {
1230 stage (' Initialize' ) {
13- agent { label ' docker' }
1431 steps {
1532 jplStart(cfg)
1633 }
1734 }
18- stage (' Build' ) {
19- agent { label ' docker' }
35+ stage (' Bash linter' ) {
2036 steps {
21- script {
22- jplDockerPush (cfg, " kairops/dc-commit-validator" , " test" , " ." , " https://registry.hub.docker.com" , " cikairos-docker-credentials" )
23- }
37+ sh ' devcontrol run-bash-linter'
2438 }
2539 }
26- stage (' Test' ) {
27- agent { label ' docker' }
28- steps {
29- sh ' bin/test.sh'
40+ stage (' Build' ) {
41+ steps {
42+ buildAndPublishDockerImage(" beta" )
3043 }
3144 }
32- stage (' Make release' ){
33- agent { label ' docker' }
45+ stage (' Make release' ) {
3446 when { branch ' release/new' }
3547 steps {
36- script { cfg. releaseTag = sh (script : " kd get-next-release-number ." , returnStdout : true ). trim() }
37- jplDockerPush (cfg, " kairops/dc-commit-validator" , cfg. releaseTag. substring(1 ), " ." , " https://registry.hub.docker.com" , " cikairos-docker-credentials" )
38- jplDockerPush (cfg, " kairops/dc-commit-validator" , " latest" , " ." , " https://registry.hub.docker.com" , " cikairos-docker-credentials" )
48+ buildAndPublishDockerImage()
3949 jplMakeRelease(cfg, true )
4050 }
4151 }
@@ -52,6 +62,6 @@ pipeline {
5262 ansiColor(' xterm' )
5363 buildDiscarder(logRotator(artifactNumToKeepStr : ' 20' ,artifactDaysToKeepStr : ' 30' ))
5464 disableConcurrentBuilds()
55- timeout(time : 1 , unit : ' DAYS ' )
65+ timeout(time : 10 , unit : ' MINUTES ' )
5666 }
57- }
67+ }
0 commit comments