Files
ifconfig/Jenkinsfile
casjay 1e72449fbf
All checks were successful
release-tag / release-image (push) Successful in 17m9s
🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/
2025-09-05 13:35:50 -04:00

71 lines
1.9 KiB
Groovy

pipeline {
agent {
label 'arm64 || amd64'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
timeout(time: 60, unit: 'MINUTES')
timestamps()
}
environment {
DOCKER_REGISTRY = 'docker.io'
IMAGE_NAME = 'casjaysdevdocker/ifconfig'
DOCKER_BUILDKIT = '1'
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build Multi-Arch Image') {
steps {
script {
def buildArgs = ""
if (fileExists('.env.scripts')) {
buildArgs = "--build-arg-file .env.scripts"
}
sh """
docker buildx create --use --name mybuilder || true
docker buildx build \\
--platform linux/amd64,linux/arm64 \\
--tag ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest \\
--tag ${DOCKER_REGISTRY}/${IMAGE_NAME}:\${BUILD_NUMBER} \\
${buildArgs} \\
--push .
"""
}
}
}
stage('Test') {
steps {
script {
sh """
docker run --rm --platform linux/\$(uname -m) \\
${DOCKER_REGISTRY}/${IMAGE_NAME}:latest \\
/bin/sh -c 'echo "Container test passed"'
"""
}
}
}
}
post {
always {
sh 'docker buildx rm mybuilder || true'
cleanWs()
}
success {
echo 'Build completed successfully!'
}
failure {
echo 'Build failed!'
}
}
}