diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-06-26 20:15:43 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-06-26 20:37:17 +0200 |
commit | c803d87f123accec097f1a3a9c220f7637bc4896 (patch) | |
tree | 54f40a65d5807a7e95d98aef3b84f7277ed7eb00 /Jenkinsfile.docker | |
parent | 346a235c00b8f7a6cd33706b420204b64da1366c (diff) | |
download | vyos-build-c803d87f123accec097f1a3a9c220f7637bc4896.tar.gz vyos-build-c803d87f123accec097f1a3a9c220f7637bc4896.zip |
Docker: use dedicated Jenkinsfile to build containers
Diffstat (limited to 'Jenkinsfile.docker')
-rw-r--r-- | Jenkinsfile.docker | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Jenkinsfile.docker b/Jenkinsfile.docker new file mode 100644 index 00000000..0706127b --- /dev/null +++ b/Jenkinsfile.docker @@ -0,0 +1,74 @@ +#!/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 + 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/*" + triggeredBy cause: "UserIdCause" + } + } + parallel { + stage('x86_64') { + agent { + label "ec2_amd64" + } + steps { + script { + DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + sh "docker build -t ${DOCKER_IMAGE} docker" + if (! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${DOCKER_IMAGE}" + } + } + } + } + } + stage('arm64') { + agent { + label "ec2_arm64" + } + steps { + script { + DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + "-arm64" + sh "docker build -t ${DOCKER_IMAGE} --build-arg ARCH=arm64v8/ docker" + if (! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${DOCKER_IMAGE}" + } + } + } + } + } + } + } + } +} |