-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjenkinsfile
97 lines (93 loc) · 2.6 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
pipeline {
agent none
environment {
MAJOR_RELEASE = 1
}
stages {
stage('Unit Testing') {
agent {
label 'masternode'
}
steps {
sh 'ant -f test.xml -v'
junit 'reports/result.xml'
}
}
stage('build') {
agent {
label 'masternode'
}
steps {
sh 'ant -f Build.xml -v'
}
post {
success {
archiveArtifacts artifacts: 'dist/*.jar', fingerprint: true
}
}
}
stage('Deploy') {
agent {
label 'masternode'
}
steps {
sh "mkdir -p /var/www/html/rectangles/all/${env.BRANCH_NAME}"
sh "cp dist/rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar /var/www/html/rectangles/all/${env.BRANCH_NAME}/"
}
}
stage("Running on Centos") {
agent {
label 'Centos'
}
steps {
sh "wget http://sumitsalunke4.mylabserver.com/rectangles/all/${env.BRANCH_NAME}/rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar"
sh "java -jar rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar 3 4"
}
}
stage ("Running on docker") {
agent {
docker 'openjdk:8u121-jre'
}
steps {
sh "wget http://sumitsalunke4.mylabserver.com/rectangles/all/${env.BRANCH_NAME}/rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar"
sh "java -jar rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar 3 4"
}
}
stage ("Promote to Green") {
agent {
label 'masternode'
}
when {
branch 'master'
}
steps {
sh "cp /var/www/html/rectangles/all/${env.BRANCH_NAME}/rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar /var/www/html/rectangles/green/rectangle_${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar"
}
}
stage("Promote Development branch to master") {
agent {
label 'masternode'
}
when {
branch 'development'
}
steps {
echo "staching local changes"
sh 'git stash'
echo "Checkout development branch"
sh 'git checkout development'
echo "cheking out master branch"
sh 'git pull origin'
sh 'git checkout master'
echo "Merging Development into master"
sh 'git merge development'
echo "Pushing to origin master"
sh "git push origin master"
echo "Tagging and Release"
sh "git tag rectangle-${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar"
echo "push the tag to origin"
sh "git push origin rectangle-${env.MAJOR_RELEASE}.${env.BUILD_NUMBER}.jar"
}
}
}
}