mirror of
				https://github.com/casjaysdevdocker/transmission
				synced 2025-11-04 07:02:26 -05:00 
			
		
		
		
	
		
			Some checks are pending
		
		
	
	release-tag / release-image (push) Waiting to run
				
			Jenkinsfile rootfs/usr/local/bin/entrypoint.sh rootfs/usr/local/etc/docker/functions/
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			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/transmission'
 | 
						|
        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!'
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |