mirror of
				https://github.com/casjaysdevdocker/ntfy
				synced 2025-10-31 02:02:36 -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/ntfy' | ||
|  |         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!' | ||
|  |         } | ||
|  |     } | ||
|  | } |