mirror of
				https://github.com/casjaysdevdocker/stikked
				synced 2025-11-03 19:02:09 -05: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/stikked'
							 | 
						||
| 
								 | 
							
								        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!'
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |