-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
89 lines (77 loc) · 2.33 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
library 'EcsDeploy'
def buildNumber = env.BUILD_NUMBER as int
if (buildNumber > 1) milestone(buildNumber - 1)
milestone(buildNumber)
node {
def NAMESPACE = 'project'
def IMAGE_API = 'project-front'
def ENVIRONMENT = 'dev'
def CLUSTER = "eduzz-dev"
def DEPLOY_BRANCHES = /(develop.*|release.*|master)/
stage ('Clone Repository') {
checkout scm
}
def COMMIT_MESSAGE = sh (returnStdout: true, script: "git log --format=format:%s -1")
def COMMIT_EMAIL = sh (returnStdout: true, script: "git --no-pager show -s --format=%ae")
def COMMIT_ID = sh(returnStdout: true, script: 'git rev-parse HEAD')
def BUILD_NUMBER = (env.BUILD_NUMBER as int)
try {
stage ('Configure Env') {
if (env.BRANCH_NAME ==~ /(release.*)/) {
ENVIRONMENT = 'qa'
CLUSTER = "eduzz-qa"
}
if (env.BRANCH_NAME ==~ /(master)/) {
ENVIRONMENT = 'prod'
CLUSTER = "eduzz-prod"
}
}
stage ('Set Env') {
if (env.BRANCH_NAME =~ /(release|hotfix|feature)/) {
sh "sh ./scripts/set-env-homolog.sh ${env.BRANCH_NAME} ${env.BUILD_NUMBER}"
}
if (env.BRANCH_NAME =~ /(master)/) {
sh "sh ./scripts/set-env.sh '${env.BRANCH_NAME}' ${env.BUILD_NUMBER}"
}
}
stage("Build App") {
dockerImage = docker.build("${IMAGE_API}:${env.BRANCH_NAME}-${env.BUILD_NUMBER}", "-f docker/prod/Dockerfile .")
}
if (env.BRANCH_NAME ==~ DEPLOY_BRANCHES) {
stage("Push Images") {
docker.withRegistry("https://${env.ECR_URL}") {
dockerImage.push("${env.BRANCH_NAME}")
dockerImage.push("${env.BRANCH_NAME}-${env.BUILD_NUMBER}")
}
}
stage('Deploy App') {
eksDeploy([
'service': "project-front",
'namespace': NAMESPACE,
'cluster': CLUSTER,
'values': [
"base.yaml",
"${ENVIRONMENT}.yaml"
],
'images': [
"appTag": "${env.BRANCH_NAME}-${env.BUILD_NUMBER}"
]
])
}
}
}
catch(err) {
discordSend(
title: env.JOB_NAME,
description: ":x: FAILED / Deu ruim :(",
footer: "#${BUILD_NUMBER} - ${COMMIT_ID.take(10)} - ${COMMIT_MESSAGE}",
link: env.BUILD_URL,
successful: false,
webhookURL: env.project_DISCORD_WEBHOOK_URL
)
throw err
}
finally {
cleanWs()
}
}