jdk14-alpine/Jenkinsfile

51 lines
1.6 KiB
Groovy

def IMAGE_BASE_NAME
def RELEASE_TAG_PREFIX
def REGISTRY_HOST
def resolveImageTag(env) {
return env.TAG_NAME?.replace(RELEASE_TAG_PREFIX, '') ?: 'latest'
}
def resolveImageName(env) {
return "${REGISTRY_HOST}/docker-base-images/${IMAGE_BASE_NAME}:${resolveImageTag(env)}"
}
pipeline {
agent {
docker {
image 'alpine:3.17.3'
// Mount docker socket for docker-in-docker
args '-v /var/run/docker.sock:/var/run/docker.sock'
}
}
stages {
stage('prepare') {
steps {
sh "apk update && apk add --no-cache git"
// Try to get tag name from git repo if it empty. By default this env fills only at tag builds in Jenkins
script {
IMAGE_BASE_NAME = "jdk14-alpine"
RELEASE_TAG_PREFIX = "release-"
REGISTRY_HOST = "git.tswf.io"
if (env.TAG_NAME == null) {
env.TAG_NAME = sh(returnStdout: true, script: "git tag --points-at HEAD").trim()
}
}
}
}
stage('build_docker') {
steps {
sh "docker build . --tag ${resolveImageName(env)}"
}
}
stage('push_docker') {
when {
tag "${RELEASE_TAG_PREFIX}*"
}
steps {
sh "docker login ${REGISTRY_HOST} -u ${env.GITEA_USER} -p ${env.GITEA_OAUTH_TOKEN}"
sh "docker image push ${resolveImageName(env)}"
}
}
}
}