forked from promogekko/conference-application
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathJenkinsfile
73 lines (59 loc) · 2.09 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
pipeline {
agent any
tools {
maven "maven 3.6"
}
environment {
NEXUS_ARTIFACT_VERSION= "${env.BUILD_NUMBER}"
}
options {
parallelsAlwaysFailFast()
}
stages {
stage('Non-Parallel Stage') {
steps {
echo 'This stage will be executed first.'
}
}
stage('Parallel Stage') {
parallel {
stage('Checkstyle') {
steps{
// Run the maven build with checkstyle
// sh "mvn clean -Dmaven.test.skip=true package checkstyle:checkstyle"
echo " checkstyle error"
}
}
stage('Sonarqube') {
steps {
withSonarQubeEnv('SonarQube') {
sh "mvn clean package sonar:sonar -Dsonar.host_url=$SONAR_HOST_URL "
}
}
}
}
}
stage('Publish in Nexus') {
steps {
nexusPublisher nexusInstanceId: 'Nexus',
nexusRepositoryId: 'releases',
packages: [[$class: 'MavenPackage',
mavenAssetList: [[classifier: '', extension: '', filePath: 'target/conference-app-3.0.0.war']], mavenCoordinate: [artifactId: 'de.codecentric', groupId: 'conference-app', packaging: 'war', version: NEXUS_ARTIFACT_VERSION]]]
}
}
stage('Build image') {
steps{
script{
def customImage = docker.build("conference-project")
}
}
}
stage('Run uat image') {
steps{
sh 'docker ps -f name=conference-uat -q | xargs --no-run-if-empty docker container stop'
sh 'docker container ls -a -fname=conference-uat -q | xargs -r docker container rm'
sh 'docker run -d --name conference-uat -p 8590:8080 conference-project'
}
}
}
}