-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathJenkinsfile
More file actions
89 lines (77 loc) · 2.01 KB
/
Copy pathJenkinsfile
File metadata and controls
89 lines (77 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
@Library ('folio_jenkins_shared_libs') _
pipeline {
environment {
BUILD_DIR = "${env.WORKSPACE}"
modDescriptor = 'ModuleDescriptor.json'
}
options {
timeout(30)
buildDiscarder(logRotator(numToKeepStr: '30'))
}
agent {
node {
label 'jenkins-agent-java17z'
}
}
stages {
stage ('Setup') {
steps {
dir(env.BUILD_DIR) {
script {
def foliociLib = new org.folio.foliociCommands()
// create md
sh('./descriptors/transform-descriptor.pl descriptors/ModuleDescriptor-template.json > ModuleDescriptor.json')
def mdJson = readJSON(file: env.modDescriptor)
def modId = mdJson.id
env.name = sh(returnStdout: true,
script: "echo ${modId} | cut -d '-' -f -2").trim()
env.bare_version = sh(returnStdout: true,
script: "echo ${modId} | cut -d '-' -f 3-").trim()
// if release
if ( foliociLib.isRelease() ) {
env.isRelease = true
env.dockerRepo = 'folioorg'
env.version = env.bare_version
}
else {
env.dockerRepo = 'folioci'
env.version = "${env.bare_version}-SNAPSHOT.${env.BUILD_NUMBER}"
}
}
}
sendNotifications 'STARTED'
}
}
stage('Build Docker') {
steps {
script {
buildDocker {
publishMaster = 'yes'
healthChk = 'no'
}
}
}
}
stage('Publish Module Descriptor') {
when {
anyOf {
branch 'master'
expression { return env.isRelease }
}
}
steps {
script {
def foliociLib = new org.folio.foliociCommands()
foliociLib.updateModDescriptor(env.modDescriptor)
}
postModuleDescriptor(env.modDescriptor)
}
}
} // end stages
post {
always {
dockerCleanup()
sendNotifications currentBuild.result
}
}
}