-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
52 lines (50 loc) · 1.63 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
pipeline {
agent none
stages {
stage('Install npm dependencies') {
agent {
docker {
image 'node:13-alpine'
}
}
steps {
sh 'npm i'
}
}
stage('Build application') {
agent {
docker {
image 'node:13-alpine'
}
}
steps {
sh 'npm run build-prod'
}
}
stage('Build docker image') {
agent any
steps {
sh 'docker image rm miraclewisp/hperproteinaemia-frontend || true'
sh 'docker build -t miraclewisp/hperproteinaemia-frontend:${BUILD_NUMBER} -t miraclewisp/hperproteinaemia-frontend:latest .'
}
}
stage('Push docker image') {
agent any
steps {
withDockerRegistry([credentialsId: "dockerhub", url: ""]) {
sh 'docker push miraclewisp/hperproteinaemia-frontend:${BUILD_NUMBER}'
sh 'docker push miraclewisp/hperproteinaemia-frontend:latest'
}
}
}
stage('Deploy') {
agent any
steps {
sh 'ssh Rinslet docker stop frontend || true'
sh 'ssh Rinslet docker image rm miraclewisp/hperproteinaemia-frontend || true'
sh 'ssh Rinslet docker pull miraclewisp/hperproteinaemia-frontend'
sh 'ssh Rinslet docker run --rm --name frontend -d -p 80:80 miraclewisp/hperproteinaemia-frontend'
}
}
}
}