mirror of
https://github.com/casjaysdevdocker/deno
synced 2025-09-17 17:56:13 -04:00
71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
![]() |
pipeline {
|
||
|
agent {
|
||
|
label 'arm64 || amd64'
|
||
|
}
|
||
|
|
||
|
options {
|
||
|
buildDiscarder(logRotator(numToKeepStr: '10'))
|
||
|
timeout(time: 60, unit: 'MINUTES')
|
||
|
timestamps()
|
||
|
}
|
||
|
|
||
|
environment {
|
||
|
DOCKER_REGISTRY = 'docker.io'
|
||
|
IMAGE_NAME = 'casjaysdevdocker/deno'
|
||
|
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!'
|
||
|
}
|
||
|
}
|
||
|
}
|