forked from javahometech/node-app
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
39 lines (36 loc) · 1.02 KB
/
Jenkinsfile
File metadata and controls
39 lines (36 loc) · 1.02 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
pipeline {
agent any
stages{
stage('Build Docker Image'){
steps{
sh "docker build . -t kammana/nodeapp:latest"
}
}
stage('DockerHub Push'){
steps{
withCredentials([usernamePassword(credentialsId: 'docker_login', passwordVariable: 'pass', usernameVariable: 'user')]) {
sh "docker login -u ${user} -p ${pass}"
sh "docker push rade5/nodeapp:latest"
}
}
}
stage('Deploy to k8s'){
steps{
sshagent(['k8s-master']) {
sh "scp -o StrictHostKeyChecking=no services.yml node-app-pod.yml ec2-user@3.8.153.242:/home/ec2-user/nodeapp"
script{
try{
sh "ssh ec2-user@3.8.153.242 kubectl apply -f ."
}catch(error){
sh "ssh ec2-user@3.8.153.242 kubectl create -f ."
}
}
}
}
}
}
}
def getDockerTag(){
def tag = sh script: 'git rev-parse HEAD', returnStdout: true
return tag
}