From 71d739ce597a77e8d2a4be3022f08f36bb7a4ab4 Mon Sep 17 00:00:00 2001 From: dd Date: Wed, 5 Jun 2024 16:02:16 +0200 Subject: added vyos-build-container "package" --- packages/vyos-build-container/Jenkinsfile | 69 +++++++++++++++++++++++++++++++ packages/vyos-build-container/build.sh | 17 ++++++++ 2 files changed, 86 insertions(+) create mode 100644 packages/vyos-build-container/Jenkinsfile create mode 100644 packages/vyos-build-container/build.sh diff --git a/packages/vyos-build-container/Jenkinsfile b/packages/vyos-build-container/Jenkinsfile new file mode 100644 index 0000000..606fddb --- /dev/null +++ b/packages/vyos-build-container/Jenkinsfile @@ -0,0 +1,69 @@ +// Copyright (C) 2020-2024 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 . +@NonCPS + +// Using a version specifier library, use 'sagitta' 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@sagitta')_ + +pipeline { + agent none + options { + disableConcurrentBuilds() + timeout(time: 240, unit: 'MINUTES') + timestamps() + buildDiscarder(logRotator(numToKeepStr: '10')) + } + stages { + stage('Build') { + agent { + label "ec2_amd64" + } + when { + anyOf { + changeset pattern: "**", caseSensitive: true + triggeredBy cause: "UserIdCause" + } + } + steps { + script { + // Checkout git repository which hold 'Jenkinsfile' + checkout scm + + // Display Git commit Id used with the Jenkinsfile on the Job 'Build History' pane + def commitId = sh(returnStdout: true, script: 'git rev-parse --short=11 HEAD').trim() + currentBuild.description = 'Git SHA1: ' + commitId + + // Fetch sources and build docker image + dir(getJenkinsfilePath() + 'vyos-build') { + checkout([$class: 'GitSCM', + doGenerateSubmoduleConfigurations: false, + extensions: [[$class: 'CleanCheckout']], + branches: [[name: env.BRANCH_NAME]], + userRemoteConfigs: [[url: 'https://github.com/dd010101/vyos-build.git']]]) + + sh 'cd ..; ./build.sh' + } + } + } + post { + cleanup { + deleteDir() + } + } + } + } +} diff --git a/packages/vyos-build-container/build.sh b/packages/vyos-build-container/build.sh new file mode 100644 index 0000000..af5ae34 --- /dev/null +++ b/packages/vyos-build-container/build.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +cd vyos-build/docker + +echo "Cleaning previous image of ${BRANCH_NAME}..." +docker rmi --force "vyos/vyos-build:${BRANCH_NAME}" || true +docker rmi --force "${CUSTOM_DOCKER_REPO}/vyos/vyos-build:$BRANCH_NAME" || true + +echo "Building docker build container for branch ${BRANCH_NAME}..." +docker build . -t "vyos/vyos-build:${BRANCH_NAME}" + +echo "Pushing ${BRANCH_NAME} image to registry ${CUSTOM_DOCKER_REPO}..." +docker tag "vyos/vyos-build:${BRANCH_NAME}" "${CUSTOM_DOCKER_REPO}/vyos/vyos-build:${BRANCH_NAME}" +docker push "${CUSTOM_DOCKER_REPO}/vyos/vyos-build:$BRANCH_NAME" + +echo "Image ${BRANCH_NAME} was successfully built and pushed to registry ${CUSTOM_DOCKER_REPO}." -- cgit v1.2.3