mirror of
https://github.com/NginxProxyManager/docker-nginx-full.git
synced 2026-05-18 07:40:36 +00:00
119 lines
3.6 KiB
Groovy
119 lines
3.6 KiB
Groovy
pipeline {
|
|
triggers {
|
|
cron( env.BRANCH_NAME.equals('master') ? 'H 1 * * *' : '')
|
|
}
|
|
agent {
|
|
label 'docker-multiarch'
|
|
}
|
|
options {
|
|
buildDiscarder(logRotator(numToKeepStr: '5'))
|
|
disableConcurrentBuilds()
|
|
ansiColor('xterm')
|
|
}
|
|
environment {
|
|
DOCKERHUB_NAMESPACE = 'nginxproxymanager'
|
|
IMAGE = 'nginx-full'
|
|
BUILDX_NAME = "${IMAGE}_${GIT_BRANCH}"
|
|
BRANCH_LOWER = "${BRANCH_NAME.toLowerCase().replaceAll('/', '-')}"
|
|
// Software versions; OpenResty does not support Lua >= 5.2
|
|
OPENRESTY_VERSION = '1.27.1.2'
|
|
CROWDSEC_OPENRESTY_BOUNCER_VERSION = '0.1.7'
|
|
LUA_VERSION = '5.1.5'
|
|
LUAROCKS_VERSION = '3.3.1'
|
|
}
|
|
stages {
|
|
stage('Environment') {
|
|
parallel {
|
|
stage('Master') {
|
|
when {
|
|
branch 'master'
|
|
}
|
|
steps {
|
|
script {
|
|
env.BASE_IMAGE = "${DOCKERHUB_NAMESPACE}/${IMAGE}:latest"
|
|
env.BUILDX_PUSH_TAGS = "-t ${BASE_IMAGE}"
|
|
env.BUILDX_PUSH_TAGS_CERTBOT = "-t ${DOCKERHUB_NAMESPACE}/${IMAGE}:certbot"
|
|
env.BUILDX_PUSH_TAGS_CERTBOT_NODE = "-t ${DOCKERHUB_NAMESPACE}/${IMAGE}:certbot-node"
|
|
}
|
|
}
|
|
}
|
|
stage('Other') {
|
|
when {
|
|
not {
|
|
branch 'master'
|
|
}
|
|
}
|
|
steps {
|
|
script {
|
|
// Defaults to the Branch name, which is applies to all branches AND pr's
|
|
env.BASE_IMAGE = "${DOCKERHUB_NAMESPACE}/${IMAGE}:github-${BRANCH_LOWER}"
|
|
env.CERTBOT_IMAGE = "${BASE_IMAGE}-certbot"
|
|
env.BUILDX_PUSH_TAGS = "-t ${BASE_IMAGE}"
|
|
env.BUILDX_PUSH_TAGS_CERTBOT = "${BUILDX_PUSH_TAGS}-certbot"
|
|
env.BUILDX_PUSH_TAGS_CERTBOT_NODE = "${BUILDX_PUSH_TAGS}-certbot-node"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Base') {
|
|
environment {
|
|
BUILDX_NAME = "${IMAGE}_${GIT_BRANCH}_base"
|
|
}
|
|
steps {
|
|
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'DOCKER_PASS', usernameVariable: 'DOCKER_USER')]) {
|
|
sh 'docker login -u "${DOCKER_USER}" -p "${DOCKER_PASS}"'
|
|
sh "./scripts/buildx --push -f docker/Dockerfile ${BUILDX_PUSH_TAGS}"
|
|
}
|
|
}
|
|
}
|
|
stage('Acme Clients') {
|
|
environment {
|
|
BUILDX_NAME = "${IMAGE}_${GIT_BRANCH}_node"
|
|
}
|
|
steps {
|
|
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'DOCKER_PASS', usernameVariable: 'DOCKER_USER')]) {
|
|
sh 'docker login -u "${DOCKER_USER}" -p "${DOCKER_PASS}"'
|
|
sh "./scripts/buildx --push -f docker/Dockerfile.certbot ${BUILDX_PUSH_TAGS_CERTBOT}"
|
|
}
|
|
}
|
|
}
|
|
stage('Dev Tools') {
|
|
environment {
|
|
BUILDX_NAME = "${IMAGE}_${GIT_BRANCH}_node"
|
|
}
|
|
steps {
|
|
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'DOCKER_PASS', usernameVariable: 'DOCKER_USER')]) {
|
|
sh 'docker login -u "${DOCKER_USER}" -p "${DOCKER_PASS}"'
|
|
sh "./scripts/buildx --push -f docker/Dockerfile.certbot-node ${BUILDX_PUSH_TAGS_CERTBOT_NODE}"
|
|
}
|
|
}
|
|
}
|
|
stage('PR Comment') {
|
|
when {
|
|
allOf {
|
|
changeRequest()
|
|
not {
|
|
equals expected: 'UNSTABLE', actual: currentBuild.result
|
|
}
|
|
}
|
|
}
|
|
steps {
|
|
script {
|
|
def comment = pullRequest.comment("""Docker Image for build ${BUILD_NUMBER} is available on [DockerHub](https://cloud.docker.com/repository/docker/${DOCKERHUB_NAMESPACE}/${IMAGE}) as:
|
|
|
|
- `${DOCKERHUB_NAMESPACE}/${IMAGE}:github-${BRANCH_LOWER}`
|
|
- `${DOCKERHUB_NAMESPACE}/${IMAGE}:github-${BRANCH_LOWER}-certbot`
|
|
- `${DOCKERHUB_NAMESPACE}/${IMAGE}:github-${BRANCH_LOWER}-certbot-node`
|
|
""")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
printResult(true)
|
|
}
|
|
}
|
|
}
|