2023-02-08 09:41:05 +09:00
|
|
|
pipeline {
|
2023-02-08 12:01:02 +09:00
|
|
|
agent {
|
2023-02-08 12:01:51 +09:00
|
|
|
label 'linux-x64'
|
2023-02-08 12:01:02 +09:00
|
|
|
}
|
2023-02-09 14:01:12 +09:00
|
|
|
environment {
|
2023-05-08 12:42:53 +09:00
|
|
|
APP_VERSION = 'v0.6.2'
|
|
|
|
|
HS_VERSION = "v0.22.1" // Version of Headscale this is compatible with
|
2023-03-15 23:19:26 +09:00
|
|
|
BUILD_DATE = ''
|
2023-03-21 11:29:52 +09:00
|
|
|
BUILDER_NAME = "multiarch-${env.BUILD_TAG}"
|
2023-03-15 23:19:26 +09:00
|
|
|
|
2023-05-02 12:25:07 +09:00
|
|
|
|
2023-03-15 23:19:26 +09:00
|
|
|
DOCKERHUB_CRED = credentials('dockerhub-ifargle-pat')
|
|
|
|
|
|
|
|
|
|
GHCR_URL = "https://ghcr.io/"
|
2023-03-16 00:11:45 +09:00
|
|
|
GHCR_CRED = credentials('github-ifargle-pat')
|
2023-03-15 23:19:26 +09:00
|
|
|
|
|
|
|
|
SYSCTL_URL = "https://git.sysctl.io/"
|
2023-03-16 11:05:32 +09:00
|
|
|
SYSCTL_CRED = credentials('gitea-jenkins-pat')
|
2023-02-09 14:01:12 +09:00
|
|
|
}
|
2023-02-08 12:01:02 +09:00
|
|
|
options {
|
|
|
|
|
buildDiscarder(logRotator(numToKeepStr: '100', artifactNumToKeepStr: '20'))
|
|
|
|
|
timestamps()
|
|
|
|
|
}
|
2023-02-08 09:41:05 +09:00
|
|
|
stages {
|
2023-03-22 11:36:27 +09:00
|
|
|
stage('Build ENV') {
|
2023-02-08 12:01:02 +09:00
|
|
|
steps {
|
2023-03-22 11:36:27 +09:00
|
|
|
|
2023-04-22 15:03:11 +09:00
|
|
|
sh 'printenv'
|
2023-04-22 06:13:23 +00:00
|
|
|
script { BUILD_DATE = java.time.LocalDate.now() }
|
2023-03-15 23:19:26 +09:00
|
|
|
sh """
|
|
|
|
|
# Create the builder:
|
2023-03-16 21:38:45 +09:00
|
|
|
docker buildx create --name $BUILDER_NAME --driver-opt=image=moby/buildkit
|
2023-03-16 08:05:10 +09:00
|
|
|
docker buildx use $BUILDER_NAME
|
2023-03-15 23:19:26 +09:00
|
|
|
docker buildx inspect --bootstrap
|
|
|
|
|
|
|
|
|
|
docker buildx ls
|
|
|
|
|
"""
|
2023-03-16 11:48:37 +09:00
|
|
|
|
2023-03-17 09:26:07 +09:00
|
|
|
sh 'docker login -u ${DOCKERHUB_CRED_USR} -p ${DOCKERHUB_CRED_PSW}'
|
2023-03-16 11:48:37 +09:00
|
|
|
sh 'docker login -u ${GHCR_CRED_USR} -p ${GHCR_CRED_PSW} $GHCR_URL'
|
|
|
|
|
sh 'docker login -u ${SYSCTL_CRED_USR} -p ${SYSCTL_CRED_PSW} $SYSCTL_URL'
|
2023-03-15 23:19:26 +09:00
|
|
|
}
|
|
|
|
|
}
|
2023-03-16 11:48:37 +09:00
|
|
|
stage('Build') {
|
2023-03-16 18:45:48 +09:00
|
|
|
options { timeout(time: 8, unit: 'HOURS') }
|
2023-03-15 23:19:26 +09:00
|
|
|
steps {
|
|
|
|
|
script {
|
|
|
|
|
if (env.BRANCH_NAME == 'main') {
|
2023-03-16 11:48:37 +09:00
|
|
|
sh """
|
2023-03-16 21:50:52 +09:00
|
|
|
docker buildx build . \
|
2023-03-17 08:27:29 +09:00
|
|
|
--tag git.sysctl.io/albert/headscale-webui:latest \
|
2023-03-17 08:30:24 +09:00
|
|
|
--tag registry-1.docker.io/ifargle/headscale-webui:latest \
|
2023-03-17 08:27:29 +09:00
|
|
|
--tag ghcr.io/ifargle/headscale-webui:latest \
|
2023-03-18 10:11:51 +09:00
|
|
|
--tag git.sysctl.io/albert/headscale-webui:${APP_VERSION} \
|
|
|
|
|
--tag registry-1.docker.io/ifargle/headscale-webui:${APP_VERSION} \
|
2023-03-17 08:27:29 +09:00
|
|
|
--tag ghcr.io/ifargle/headscale-webui:${APP_VERSION} \
|
2023-03-16 22:01:27 +09:00
|
|
|
--build-arg GIT_COMMIT_ARG=${env.GIT_COMMIT} \
|
|
|
|
|
--build-arg GIT_BRANCH_ARG=${env.BRANCH_NAME} \
|
|
|
|
|
--build-arg APP_VERSION_ARG=${APP_VERSION} \
|
2023-03-16 11:48:37 +09:00
|
|
|
--build-arg BUILD_DATE_ARG=${BUILD_DATE} \
|
|
|
|
|
--build-arg HS_VERSION_ARG=${HS_VERSION} \
|
|
|
|
|
--label \"GIT_COMMIT=${env.GIT_COMMIT}\" \
|
2023-03-18 10:22:13 +09:00
|
|
|
--platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 \
|
2023-03-16 11:51:21 +09:00
|
|
|
--push
|
2023-05-02 12:25:07 +09:00
|
|
|
"""
|
2023-03-16 22:12:44 +09:00
|
|
|
} else { // If I'm just testing, I don't need to build for ARM
|
2023-03-16 11:48:37 +09:00
|
|
|
sh """
|
2023-03-16 21:50:52 +09:00
|
|
|
docker buildx build . \
|
2023-03-17 08:27:29 +09:00
|
|
|
--tag git.sysctl.io/albert/headscale-webui:testing \
|
|
|
|
|
--tag ghcr.io/ifargle/headscale-webui:testing \
|
2023-03-18 10:11:51 +09:00
|
|
|
--tag git.sysctl.io/albert/headscale-webui:${env.BRANCH_NAME} \
|
2023-03-17 08:27:29 +09:00
|
|
|
--tag ghcr.io/ifargle/headscale-webui:${env.BRANCH_NAME} \
|
2023-03-16 11:48:37 +09:00
|
|
|
--build-arg GIT_COMMIT_ARG=${env.GIT_COMMIT} \
|
|
|
|
|
--build-arg GIT_BRANCH_ARG=${env.BRANCH_NAME} \
|
|
|
|
|
--build-arg APP_VERSION_ARG=${APP_VERSION} \
|
|
|
|
|
--build-arg BUILD_DATE_ARG=${BUILD_DATE} \
|
|
|
|
|
--build-arg HS_VERSION_ARG=${HS_VERSION} \
|
|
|
|
|
--label \"GIT_COMMIT=${env.GIT_COMMIT}\" \
|
2023-03-18 10:22:13 +09:00
|
|
|
--platform linux/amd64 \
|
2023-03-16 11:51:21 +09:00
|
|
|
--push
|
2023-03-16 11:48:37 +09:00
|
|
|
"""
|
2023-03-15 23:19:26 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-22 11:29:04 +09:00
|
|
|
stage('Pull Test') {
|
|
|
|
|
steps {
|
|
|
|
|
script {
|
|
|
|
|
if (env.BRANCH_NAME == 'main') {
|
|
|
|
|
sh """
|
|
|
|
|
docker pull git.sysctl.io/albert/headscale-webui:latest
|
|
|
|
|
docker pull registry-1.docker.io/ifargle/headscale-webui:latest
|
|
|
|
|
docker pull ghcr.io/ifargle/headscale-webui:latest
|
|
|
|
|
docker pull git.sysctl.io/albert/headscale-webui:${APP_VERSION}
|
|
|
|
|
docker pull registry-1.docker.io/ifargle/headscale-webui:${APP_VERSION}
|
|
|
|
|
docker pull ghcr.io/ifargle/headscale-webui:${APP_VERSION}
|
|
|
|
|
"""
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
sh """
|
2023-05-02 12:25:07 +09:00
|
|
|
docker pull git.sysctl.io/albert/headscale-webui:testing
|
|
|
|
|
docker pull ghcr.io/ifargle/headscale-webui:testing
|
|
|
|
|
docker pull git.sysctl.io/albert/headscale-webui:${env.BRANCH_NAME}
|
|
|
|
|
docker pull ghcr.io/ifargle/headscale-webui:${env.BRANCH_NAME}
|
2023-03-22 11:29:04 +09:00
|
|
|
"""
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-16 00:10:23 +09:00
|
|
|
}
|
|
|
|
|
post {
|
|
|
|
|
always {
|
|
|
|
|
script {
|
|
|
|
|
sh """
|
|
|
|
|
docker buildx use default
|
|
|
|
|
docker buildx rm $BUILDER_NAME
|
2023-03-15 23:19:26 +09:00
|
|
|
|
2023-03-16 00:10:23 +09:00
|
|
|
## Sanity check step
|
|
|
|
|
docker buildx ls
|
|
|
|
|
docker logout
|
2023-03-15 23:19:26 +09:00
|
|
|
|
2023-03-16 00:10:23 +09:00
|
|
|
docker system prune --force
|
|
|
|
|
"""
|
2023-02-19 21:06:27 +09:00
|
|
|
}
|
|
|
|
|
}
|
2023-02-08 09:44:49 +09:00
|
|
|
}
|
2023-02-09 11:16:53 +09:00
|
|
|
}
|