commit 3d4671a11fd9f09e41e0375b823a19dd5f572866 Author: amorozov Date: Thu Mar 30 18:58:04 2023 +0300 initial commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0173652 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +ARG BASE_IMAGE="adoptopenjdk/openjdk14:alpine-slim" + +FROM ${BASE_IMAGE} + +# Install docker-cli, docker-compose, git, bash +RUN apk update && \ + apk add --no-cache docker-cli python3 py3-pip git bash && \ + apk add --no-cache --virtual .docker-compose-deps python3-dev libffi-dev openssl-dev gcc libc-dev make && \ + pip3 install docker-compose && \ + apk del .docker-compose-deps + + diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..6f73a24 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,47 @@ +def imageName = "jdk14-alpine" +def releaseTagPrefix = "release-" +def registryHost = "git.tswf.io" + +def resolveImageTag(env) { + return env.TAG_NAME?.replace(releaseTagPrefix, '') ?: 'latest' +} + +def resolveImageName(env) { + return "${registryHost}/docker-base-images/${imageName}:${resolveImageTag(env)}" +} + +pipeline { + agent { + docker { + image 'alpine/git:2.36.3' + // Mount docker socket for docker-in-docker + args '-v /var/run/docker.sock:/var/run/docker.sock' + } + } + stages { + stage('prepare') { + steps { + // Try to get tag name from git repo if it empty. By default this env fills only at tag builds in Jenkins + script { + 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 "${releaseTagPrefix}*" + } + steps { + sh "docker login ${registryHost} -u ${env.GITEA_USER} -p ${env.GITEA_OAUTH_TOKEN}" + sh "docker image push ${resolveImageName(env)}" + } + } + } +} \ No newline at end of file