summaryrefslogtreecommitdiff
path: root/Jenkinsfile.docker
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2022-01-04 07:25:29 +0100
committerChristian Poessinger <christian@poessinger.com>2022-01-04 07:44:22 +0100
commit17d8a6bf5bb53f427613bde49297d46c4038dda0 (patch)
treedbc6d3ee9719940a3a15d31e994d0445e875f20a /Jenkinsfile.docker
parent28f43c87b670005c591db72546faebdd01ec9ea2 (diff)
downloadvyos-build-17d8a6bf5bb53f427613bde49297d46c4038dda0.tar.gz
vyos-build-17d8a6bf5bb53f427613bde49297d46c4038dda0.zip
Jenkins: sync build library and Pipeline to equuleus branch
Diffstat (limited to 'Jenkinsfile.docker')
-rw-r--r--Jenkinsfile.docker65
1 files changed, 65 insertions, 0 deletions
diff --git a/Jenkinsfile.docker b/Jenkinsfile.docker
new file mode 100644
index 00000000..8ea65b16
--- /dev/null
+++ b/Jenkinsfile.docker
@@ -0,0 +1,65 @@
+#!/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@crux')_
+setDescription()
+
+pipeline {
+ agent none
+ 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 = "vyos/vyos-build:" + getGitBranchName()
+ sh "docker build -t ${DOCKER_IMAGE} docker"
+ if (! isCustomBuild()) {
+ withDockerRegistry([credentialsId: "DockerHub"]) {
+ sh "docker push ${DOCKER_IMAGE}"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}