forked from alphagov/pay-publicauth
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
129 lines (121 loc) · 2.52 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env groovy
pipeline {
agent any
parameters {
booleanParam(defaultValue: false, description: '', name: 'runEndToEndTestsOnPR')
}
options {
ansiColor('xterm')
timestamps()
}
libraries {
lib("pay-jenkins-library@master")
}
environment {
DOCKER_HOST = "unix:///var/run/docker.sock"
RUN_END_TO_END_ON_PR = "${params.runEndToEndTestsOnPR}"
JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64"
}
stages {
stage('Maven Build') {
steps {
script {
long stepBuildTime = System.currentTimeMillis()
sh 'mvn -version'
sh 'mvn clean verify'
postSuccessfulMetrics("publicauth.maven-build", stepBuildTime)
}
}
post {
failure {
postMetric("publicauth.maven-build.failure", 1)
}
}
}
stage('Docker Build') {
steps {
script {
buildAppWithMetrics {
app = "publicauth"
}
}
}
post {
failure {
postMetric("publicauth.docker-build.failure", 1)
}
}
}
stage('Tests') {
failFast true
stages {
stage('End-to-End Tests') {
when {
anyOf {
branch 'master'
environment name: 'RUN_END_TO_END_ON_PR', value: 'true'
}
}
steps {
runAppE2E("publicauth", "card,zap")
}
}
}
}
stage('Docker Tag') {
steps {
script {
dockerTagWithMetrics {
app = "publicauth"
}
}
}
post {
failure {
postMetric("publicauth.docker-tag.failure", 1)
}
}
}
stage('Deploy') {
when {
branch 'master'
}
steps {
deployEcs("publicauth")
}
}
stage('Smoke Tests') {
when { branch 'master' }
steps { runCardSmokeTest() }
}
stage('Complete') {
failFast true
parallel {
stage('Tag Build') {
when {
branch 'master'
}
steps {
tagDeployment("publicauth")
}
}
stage('Trigger Deploy Notification') {
when {
branch 'master'
}
steps {
triggerGraphiteDeployEvent("publicauth")
}
}
}
}
}
post {
failure {
postMetric(appendBranchSuffix("publicauth") + ".failure", 1)
}
success {
postSuccessfulMetrics(appendBranchSuffix("publicauth"))
}
}
}