parsley/Jenkinsfile

46 lines
1.3 KiB
Plaintext
Raw Normal View History

2018-07-22 16:15:53 -05:00
library('jenkins_build')
node {
2018-07-22 16:42:43 -05:00
docker.withRegistry('https://registry.elbert.us', '6ad2f24c-6da4-4cdb-b526-4773922fb0d5') {
2018-07-22 16:28:25 -05:00
2018-07-22 16:42:43 -05:00
main {
2018-07-22 16:28:25 -05:00
2018-07-22 16:42:43 -05:00
def jobnameparts = JOB_NAME.tokenize('/') as String[]
def jobconsolename = jobnameparts[0]
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
def projectName = jobconsolename
def dockerImageName = "registry.elbert.us/${projectName}"
def sourceFigFile = "./docker-compose-rlyeh.yml"
def figFile = "/etc/fig/${projectName}.yml"
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
def dockerImage
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
stage("Checkout") {
checkout scm
}
stage("Build") {
dockerImage = docker.build("${dockerImageName}:latest")
}
stage("Deploy") {
2018-07-22 16:15:53 -05:00
2018-07-22 16:39:08 -05:00
dockerImage.push()
dockerImage.push("production")
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
sh "/usr/local/bin/docker-compose --project-name '${projectName}' --file '${sourceFigFile}' pull"
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
if (fileExists(figFile)) {
sh "/usr/local/bin/docker-compose --project-name '${projectName}' --file '${figFile}' down"
}
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
sh "cp ${sourceFigFile} ${figFile}"
2018-07-22 16:15:53 -05:00
2018-07-22 16:42:43 -05:00
sh "/usr/local/bin/docker-compose --project-name '${projectName}' --file '${figFile}' up -d"
}
2018-07-22 16:15:53 -05:00
}
}
}