55 lines
1.6 KiB
Groovy
55 lines
1.6 KiB
Groovy
#!/usr/bin/env groovy
|
|
|
|
library identifier: 'jenkins-shared-library@master', retriever: modernSCM(
|
|
[$class: 'GitSCMSource',
|
|
remote: 'https://gitlab.com/nanuchi/jenkins-shared-library.git',
|
|
credentialsId: 'gitlab-credentials'
|
|
]
|
|
)
|
|
|
|
pipeline {
|
|
agent any
|
|
tools {
|
|
maven 'Maven'
|
|
}
|
|
environment {
|
|
IMAGE_NAME = 'nanajanashia/demo-app:java-maven-2.0'
|
|
}
|
|
stages {
|
|
stage('build app') {
|
|
steps {
|
|
script {
|
|
echo 'building application jar...'
|
|
buildJar()
|
|
}
|
|
}
|
|
}
|
|
stage('build image') {
|
|
steps {
|
|
script {
|
|
echo 'building docker image...'
|
|
buildImage(env.IMAGE_NAME)
|
|
dockerLogin()
|
|
dockerPush(env.IMAGE_NAME)
|
|
}
|
|
}
|
|
}
|
|
stage('deploy') {
|
|
steps {
|
|
script {
|
|
echo 'deploying docker image to EC2...'
|
|
|
|
def shellCmd = "bash ./server-cmds.sh ${IMAGE_NAME}"
|
|
def ec2Instance = "ec2-user@35.180.251.121"
|
|
|
|
sshagent(['ec2-server-key']) {
|
|
sh "scp -o StrictHostKeyChecking=no server-cmds.sh ${ec2Instance}:/home/ec2-user"
|
|
sh "scp -o StrictHostKeyChecking=no docker-compose.yaml ${ec2Instance}:/home/ec2-user"
|
|
sh "ssh -o StrictHostKeyChecking=no ${ec2Instance} ${shellCmd}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|