summaryrefslogtreecommitdiff
path: root/Jenkinsfile.docker
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-06-26 20:15:43 +0200
committerChristian Poessinger <christian@poessinger.com>2021-06-26 20:37:17 +0200
commitc803d87f123accec097f1a3a9c220f7637bc4896 (patch)
tree54f40a65d5807a7e95d98aef3b84f7277ed7eb00 /Jenkinsfile.docker
parent346a235c00b8f7a6cd33706b420204b64da1366c (diff)
downloadvyos-build-c803d87f123accec097f1a3a9c220f7637bc4896.tar.gz
vyos-build-c803d87f123accec097f1a3a9c220f7637bc4896.zip
Docker: use dedicated Jenkinsfile to build containers
Diffstat (limited to 'Jenkinsfile.docker')
-rw-r--r--Jenkinsfile.docker74
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}"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}