forked from linuxacademy/content-jenkins-java-project
-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathJenkinsfile
95 lines (93 loc) · 2.64 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
pipeline {
agent none
environment {
MAJOR_VERSION = 1
}
stages {
stage('Unit Tests') {
agent {
label 'apache'
}
steps {
sh 'ant -f test.xml -v'
junit 'reports/result.xml'
}
}
stage('build') {
agent {
label 'apache'
}
steps {
sh 'ant -f build.xml -v'
}
post {
success {
archiveArtifacts artifacts: 'dist/*.jar', fingerprint: true
}
}
}
stage('deploy') {
agent {
label 'apache'
}
steps {
sh "if ! [ -d '/var/www/html/rectangles/all/${env.BRANCH_NAME}' ]; then mkdir /var/www/html/rectangles/all/${env.BRANCH_NAME}; fi"
sh "cp dist/rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar /var/www/html/rectangles/all/${env.BRANCH_NAME}/"
}
}
stage("Running on CentOS") {
agent {
label 'centos'
}
steps {
sh "wget http://b306bc7dc42c.mylabserver.com//rectangles/all/${env.BRANCH_NAME}/rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar"
sh "java -jar rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar 3 4"
}
}
stage("Test on Debian") {
agent {
docker 'openjdk:11.0.16-jre'
}
steps {
sh "wget http://b306bc7dc42c.mylabserver.com//rectangles/all/${env.BRANCH_NAME}/rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar"
sh "java -jar rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar 3 4"
}
}
stage('Promote to Green') {
agent {
label 'apache'
}
when {
branch 'master'
}
steps {
sh "cp /var/www/html/rectangles/all/${env.BRANCH_NAME}/rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar /var/www/html/rectangles/green/rectangle_${env.MAJOR_VERSION}.${env.BUILD_NUMBER}.jar"
}
}
stage('Promote Development Branch to Master') {
agent {
label 'apache'
}
when {
branch 'development'
}
steps {
echo "Stashing Any Local Changes"
sh 'git stash'
echo "Checking Out Development Branch"
sh 'git checkout development'
echo 'Checking Out Master Branch'
// sh 'git branch master'
sh 'git pull origin master'
sh 'git checkout master'
echo 'Merging Development into Master Branch'
sh 'git merge development'
echo 'Pushing to Origin Master'
sh 'git push origin master'
echo 'Tagging the Release'
sh "git tag rectangle-${env.MAJOR_VERSION}.${env.BUILD_NUMBER}"
sh "git push origin rectangle-${env.MAJOR_VERSION}.${env.BUILD_NUMBER}"
}
}
}
}