mirror of
				https://github.com/vyos/vyos-build.git
				synced 2025-10-01 20:28:40 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
#!/usr/bin/env groovy
 | 
						|
// Copyright (C) 2019-2021 VyOS maintainers and contributors
 | 
						|
//
 | 
						|
// This program is free software; you can redistribute it and/or modify
 | 
						|
// in order to easy exprort images built to "external" world
 | 
						|
// it under the terms of the GNU General Public License version 2 or later as
 | 
						|
// published by the Free Software Foundation.
 | 
						|
//
 | 
						|
// This program is distributed in the hope that it will be useful,
 | 
						|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
// GNU General Public License for more details.
 | 
						|
//
 | 
						|
// You should have received a copy of the GNU General Public License
 | 
						|
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
@NonCPS
 | 
						|
 | 
						|
// Using a version specifier library, use 'current' branch. The underscore (_)
 | 
						|
// is not a typo! You need this underscore if the line immediately after the
 | 
						|
// @Library annotation is not an import statement!
 | 
						|
@Library('vyos-build@current')_
 | 
						|
setDescription()
 | 
						|
 | 
						|
pipeline {
 | 
						|
    agent none
 | 
						|
    environment {
 | 
						|
        GIT_BRANCH_NAME = getGitBranchName()
 | 
						|
    }
 | 
						|
    options {
 | 
						|
        disableConcurrentBuilds()
 | 
						|
        timeout(time: 240, unit: 'MINUTES')
 | 
						|
        timestamps()
 | 
						|
        buildDiscarder(logRotator(numToKeepStr: '20'))
 | 
						|
    }
 | 
						|
    stages {
 | 
						|
        stage('Build containers') {
 | 
						|
            when {
 | 
						|
                beforeOptions true
 | 
						|
                beforeAgent true
 | 
						|
                // Only run ISO image build process of explicit user request or
 | 
						|
                // once a night triggered by the timer.
 | 
						|
                anyOf {
 | 
						|
                    changeset pattern: "**/docker/*"
 | 
						|
                    changeset pattern: "**/Jenkinsfile.docker"
 | 
						|
                    triggeredBy cause: "UserIdCause"
 | 
						|
                }
 | 
						|
            }
 | 
						|
            parallel {
 | 
						|
                stage('x86_64') {
 | 
						|
                    agent {
 | 
						|
                        label "ec2_amd64"
 | 
						|
                    }
 | 
						|
                    steps {
 | 
						|
                        script {
 | 
						|
                            DOCKER_IMAGE_AMD64 = "vyos/vyos-build:" + env.GIT_BRANCH_NAME
 | 
						|
                            sh "docker build --no-cache --tag ${DOCKER_IMAGE_AMD64} docker"
 | 
						|
                            if (! isCustomBuild()) {
 | 
						|
                                withDockerRegistry([credentialsId: "DockerHub"]) {
 | 
						|
                                    sh "docker push ${DOCKER_IMAGE_AMD64}"
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                stage('arm64') {
 | 
						|
                    agent {
 | 
						|
                        label "ec2_arm64"
 | 
						|
                    }
 | 
						|
                    steps {
 | 
						|
                        script {
 | 
						|
                            DOCKER_IMAGE_ARM64 = "vyos/vyos-build:" + env.GIT_BRANCH_NAME + "-arm64"
 | 
						|
                            sh "docker build --no-cache --tag ${DOCKER_IMAGE_ARM64} --build-arg ARCH=arm64v8/ docker"
 | 
						|
                            if (! isCustomBuild()) {
 | 
						|
                                withDockerRegistry([credentialsId: "DockerHub"]) {
 | 
						|
                                    sh "docker push ${DOCKER_IMAGE_ARM64}"
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |