-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
85 lines (76 loc) · 1.72 KB
/
Jenkinsfile
File metadata and controls
85 lines (76 loc) · 1.72 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
#!/user/bin/env groovy
// If the shared library is configured globally in Jenkins
// @Library('jenkins-shared-library')
library identifier: 'jenkins-shared-library@main', retriever: modernSCM([
$class: 'GitSCMSource',
remote: 'https://github.com/explicit-logic/jenkins-shared-library',
credentialsId: 'github'
])
def gv
pipeline {
agent any
tools {
maven 'maven-3.9'
}
parameters {
string(name: 'DOCKER_IMAGE', defaultValue: 'explicitlogic/app')
string(name: 'DOCKER_TAG', defaultValue: 'script')
string(name: 'EC2_PUBLIC_IP', defaultValue: '54.93.40.224')
}
stages {
stage("init") {
steps {
dir('app') {
script {
gv = load "script.groovy"
}
}
}
}
stage("test") {
when {
expression {
BRANCH_NAME == "main"
}
}
steps {
dir('app') {
script {
gv.testApp()
}
}
}
}
stage("build jar") {
steps {
dir('app') {
script {
buildJar()
}
}
}
}
stage("build and push image") {
steps {
dir('app') {
script {
buildImage(params.DOCKER_IMAGE, params.DOCKER_TAG)
dockerLogin()
dockerPush(params.DOCKER_IMAGE, params.DOCKER_TAG)
}
}
}
}
stage("deploy") {
steps {
dir('app') {
script {
// Deploy without shell script
// gv.deployApp([image: params.DOCKER_IMAGE, tag: env.BRANCH_NAME], params.EC2_PUBLIC_IP)
gv.deployScript([image: params.DOCKER_IMAGE, tag: params.DOCKER_TAG], params.EC2_PUBLIC_IP)
}
}
}
}
}
}