-
Notifications
You must be signed in to change notification settings - Fork 11
/
jenkinsfilebkp
83 lines (82 loc) · 3.16 KB
/
jenkinsfilebkp
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
pipeline {
environment {
registryCredential = 'dockerhub'
newApp = ''
newWeb = ''
}
/* insert Declarative Pipeline here */
agent any
stages {
stage('Prepare env') {
steps {
sh 'cp .env.example .env'
sh "sed -i 's/DB_HOST.*/DB_HOST=database/g' .env.testing"
sh "sed -i 's/DB_USERNAME.*/DB_USERNAME=homestead/g' .env.testing"
sh "sed -i 's/DB_HOST.*/DB_HOST=database/g' .env"
}
}
stage('Build') {
steps{
script{
newApp = docker.build("jacksonlima91/forum-app:$BUILD_NUMBER")
newWeb = docker.build("jacksonlima91/forum-web:$BUILD_NUMBER", "-f Dockerfile_Nginx .")
}
}
}
stage('Test'){
steps{
sh "sed -i 's/forum-app.*/forum-app:$BUILD_NUMBER/g' docker-compose.yml"
sh "sed -i 's/forum-web.*/forum-web:$BUILD_NUMBER/g' docker-compose.yml"
sh "docker-compose up -d"
sh "sleep 30s"
sh "docker exec app vendor/bin/phpunit"
sh "docker-compose down"
}
}
stage('Push'){
steps{
script{
docker.withRegistry('https://index.docker.io/v1/','dockerhub'){
newApp.push()
newWeb.push()
}
}
}
}
stage('Deploy Dev'){
when {
branch 'develop'
}
steps{
sh 'kubectl set image deployment/forum-app backend=jacksonlima91/forum-app:$BUILD_NUMBER -n develop --kubeconfig /var/lib/jenkins/.kube/config'
sh 'kubectl set image deployment/forum-web backend=jacksonlima91/forum-web:$BUILD_NUMBER -n develop --kubeconfig /var/lib/jenkins/.kube/config'
}
}
stage('Deploy Prod'){
when {
branch 'master'
}
steps{
sh 'kubectl set image deployment/forum-app backend=jacksonlima91/forum-app:$BUILD_NUMBER --kubeconfig /var/lib/jenkins/.kube/config'
sh 'kubectl set image deployment/forum-web backend=jacksonlima91/forum-web:$BUILD_NUMBER --kubeconfig /var/lib/jenkins/.kube/config'
}
}
}
post {
failure {
emailext(
subject: "Job '${env.JOB_NAME} ${env.BUILD_NUMBER}'",
body: """<p>A Build Falhou <a href="${env.BUILD_URL}">${env.JOB_NAME}</a></p>""",
recipientProviders: [[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']]
)
}
success {
emailext(
subject: "Job '${env.JOB_NAME} ${env.BUILD_NUMBER}'",
body: """<p>A Build foi feita com sucesso <a href="${env.BUILD_URL}">${env.JOB_NAME}</a></p>""",
to: "jackson@schoolofnet.com"
)
} /*emailext body: 'A Test EMail', recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']], subject: 'Test'*/
}
}