deepface/Jenkinsfile
2020-10-20 00:06:57 +11:00

106 lines
2.9 KiB
Groovy

#! groovy
pipeline {
agent { label 'MeG' }
environment {
DOCKER_PULL_REPO='repo.eresearch.unimelb.edu.au:8000'
DOCKER_PUSH_REPO='repo.eresearch.unimelb.edu.au:8001'
DOCKER_IMAGE_NAME="happypet/webapp"
GPU_DOCKER_IMAGE_NAME="happypet/webapp-gpu"
BASE_IMAGE_NAME="happypet/tensorflow"
BASE_IMAGE_TAG="1.15.2-py3"
GPU_BASE_IMAGE_TAG="1.15.2-gpu-py3"
}
stages {
stage('Pull base image'){
steps {
ansiColor('xterm') {
script {
docker.withRegistry("https://${env.DOCKER_PULL_REPO}",'repo-credentials') {
script {
docker.image("${env.BASE_IMAGE_NAME}:${env.BASE_IMAGE_TAG}").pull()
docker.image("${env.BASE_IMAGE_NAME}:${env.GPU_BASE_IMAGE_TAG}").pull()
}
}
}
}
}
}
stage('Build only'){
when {
not {
anyOf {
branch 'master'
branch 'develop'
branch 'release'
}
}
}
steps {
ansiColor('xterm') {
script {
def version = sh(returnStdout: true, script:'git describe --tags --always').trim()
docker.withRegistry("https://${env.DOCKER_PUSH_REPO}",'repo-credentials') {
script {
docker.build("${env.DOCKER_IMAGE_NAME}:${version}",'-f docker/release/Dockerfile .')
docker.build("${env.GPU_DOCKER_IMAGE_NAME}:${version}",'-f docker/release_gpu/Dockerfile .')
}
}
}
}
}
}
stage('Build and Push'){
when {
anyOf {
branch 'master'
branch 'develop'
branch 'release'
}
}
steps {
ansiColor('xterm') {
script {
def version = sh(returnStdout: true, script:'git describe --tags --always').trim()
docker.withRegistry("https://${env.DOCKER_PUSH_REPO}",'repo-credentials') {
script {
docker.build("${env.DOCKER_IMAGE_NAME}:${version}",'-f docker/release/Dockerfile .')
.push()
docker.build("${env.DOCKER_IMAGE_NAME}:latest",'-f docker/release/Dockerfile .')
.push()
docker.build("${env.GPU_DOCKER_IMAGE_NAME}:${version}",'-f docker/release_gpu/Dockerfile .')
.push()
docker.build("${env.GPU_DOCKER_IMAGE_NAME}:latest",'-f docker/release_gpu/Dockerfile .')
.push()
}
}
}
}
}
}
stage('Deploy'){
when {
anyOf {
branch 'master'
branch 'develop'
}
}
steps {
ansiColor('xterm') {
script {
sshagent (credentials: ['960a6936-d2d3-4d24-b9bb-c19e33f467ed']) {
sh "ssh -o StrictHostKeyChecking=no happypet-real-dev.eresearch.unimelb.edu.au"
}
}
}
}
}
}
}