forked from openshift/jenkins
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathJenkinsfile
70 lines (60 loc) · 2.53 KB
/
Jenkinsfile
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
#!/usr/bin/groovy
@Library('github.com/fabric8io/fabric8-pipeline-library@master')
def name = 'jenkins-openshift-base'
def org = 'fabric8io'
dockerTemplate{
s2iNode(s2iImage: 'fabric8/s2i-builder:0.0.3'){
checkout scm
if (env.BRANCH_NAME.startsWith('PR-')) {
echo 'Running CI pipeline'
container('s2i') {
sh 'make build VERSION=2'
sh 'make build VERSION=slave-base'
}
def newVersion = "${env.BRANCH_NAME}-${env.BUILD_NUMBER}"
stage ('push to dockerhub'){
container('docker') {
sh "docker tag openshift/jenkins-2-centos7:latest fabric8/jenkins-openshift-base:${newVersion}"
sh "docker push fabric8/jenkins-openshift-base:${newVersion}"
}
}
} else if (env.BRANCH_NAME.equals('master')) {
echo 'Running CD pipeline'
def newVersion = getNewVersion {}
stage ('build'){
container('s2i') {
sh 'make build VERSION=2'
sh 'make build VERSION=slave-base'
}
}
stage ('push to dockerhub'){
container('docker') {
sh "docker tag openshift/jenkins-2-centos7:latest fabric8/jenkins-openshift-base:${newVersion}"
sh "docker tag openshift/jenkins-slave-base-centos7:latest fabric8/jenkins-slave-base-centos7:${newVersion}"
sh "docker push fabric8/jenkins-openshift-base:${newVersion}"
sh "docker push fabric8/jenkins-slave-base-centos7:${newVersion}"
}
}
updateDownstreamRepos(newVersion)
}
}
}
def updateDownstreamRepos(newVersion){
container('s2i') {
def flow = new io.fabric8.Fabric8Commands()
flow.setupGitSSH()
def uid = UUID.randomUUID().toString()
def branch = "versionUpdate${uid}"
def message = "Update jenkins base image to ${newVersion}"
sh """
git clone [email protected]:fabric8io/openshift-jenkins-s2i-config.git --depth 1
cd openshift-jenkins-s2i-config
git checkout -b ${branch}
sed -i 's/baseImageVerion = .*/baseImageVerion = \"${newVersion}\"/g' Jenkinsfile
git commit Jenkinsfile -m "${message}"
git push origin ${branch}
"""
def prId = flow.createPullRequest(message, 'fabric8io/openshift-jenkins-s2i-config', branch)
//flow.mergePR(gitRepo, prId)
}
}