From 83cb1193166037a71c91443a6559c39c41e8803a Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Tue, 23 Jul 2019 12:05:09 -0400 Subject: Update changelog and remove obsolete packages. --- debian/changelog | 7 +++++++ debian/control | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7ffbafc..5229974 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +vyos-world (1.3.0+vyos3+equuleus1) unstable; urgency=medium + + * New branch. + * Remove outdated packages. + + -- Daniil Baturin Tue, 23 Jul 2019 12:04:07 -0400 + vyos-world (1.2.1) unstable; urgency=medium * Remove dependency on vyos-firmware, it's a part of the image build now. diff --git a/debian/control b/debian/control index e672cb0..1ed67cb 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,6 @@ Architecture: all Depends: vyatta-cfg-system, vyatta-op, vyatta-config-mgmt, - vyatta-config-migrate, vyatta-cfg-firewall, vyatta-op-firewall, vyatta-cfg-op-pppoe, @@ -23,7 +22,6 @@ Depends: vyatta-cfg-system, vyatta-cluster, vyatta-conntrack, vyatta-conntrack-sync, - vyatta-eventwatch, vyatta-ipv6-rtradv, vyatta-lldp, vyatta-nat, -- cgit v1.2.3 From 61cd50651963e153d2c01d5913878bb3445a3783 Mon Sep 17 00:00:00 2001 From: UnicronNL Date: Wed, 14 Aug 2019 16:02:30 +0200 Subject: update Jenkins file for equuleus --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 563ead2..11b1b0e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { docker { label 'jessie-amd64' args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006 -v /tmp:/tmp' - image 'higebu/vyos-build:current' + image 'higebu/vyos-build:equuleus' } } @@ -27,7 +27,7 @@ mv ../*.deb /tmp/$GIT_BRANCH/packages/''' agent { docker { label 'jessie-amd64' - image 'vyos-build-armhf:current' + image 'vyos-build-armhf:equuleus' args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006 -v /tmp:/tmp' } @@ -48,7 +48,7 @@ mv ../*.deb /tmp/$GIT_BRANCH/packages/''' docker { label 'jessie-amd64' args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006 -v /tmp:/tmp' - image 'vyos-build-arm64:current' + image 'vyos-build-arm64:equuleus' } } -- cgit v1.2.3 From f87034cf49f58bb2c3b143921248b423cae25e42 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Mon, 19 Aug 2019 13:01:43 -0400 Subject: Remove vyos-saltminion from the build until saltstack packages are available. --- debian/control | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/control b/debian/control index 1ed67cb..e8a6a4b 100644 --- a/debian/control +++ b/debian/control @@ -41,7 +41,6 @@ Depends: vyatta-cfg-system, vyos-intel-ixgbevf, vyos-nhrp, vyos-1x, - vyos-salt-minion, vyos-vmwaretools-scripts Description: VyOS metapackage Installs everything required for VyOS to work -- cgit v1.2.3 From 1ca1e09df4b5b6acca0afeae91180d7f0a1d47e4 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 28 Sep 2019 13:26:26 +0200 Subject: Jenkins: import Pipeline from vyos-1x commit bd00ec7 --- Jenkinsfile | 252 +++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 148 insertions(+), 104 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 11b1b0e..b11267e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,119 +1,163 @@ -pipeline { - agent none - stages { - stage('build-package') { - parallel { - stage('Build package amd64') { - agent { - docker { - label 'jessie-amd64' - args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006 -v /tmp:/tmp' - image 'higebu/vyos-build:equuleus' - } +// Copyright (C) 2019 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 + +def getGitBranchName() { + def branch = scm.branches[0].name + return branch.split('/')[-1] +} + +def getGitRepoURL() { + return scm.userRemoteConfigs[0].url +} + +def getGitRepoName() { + return getGitRepoURL().split('/').last() +} + +// Returns true if this is a custom build launched on any project fork. +// Returns false if this is build from git@github.com:vyos/. +// can be e.g. vyos-1x.git or vyatta-op.git +def isCustomBuild() { + // GitHub organisation base URL + def gitURI = 'git@github.com:vyos/' + getGitRepoName() + def httpURI = 'https://github.com/vyos/' + getGitRepoName() + + return ! ((getGitRepoURL() == gitURI) || (getGitRepoURL() == httpURI)) +} + +def setDescription() { + def item = Jenkins.instance.getItemByFullName(env.JOB_NAME) + + // build up the main description text + def description = "" + description += "

VyOS individual package build: " + getGitRepoName().replace('.git', '') + "

" + + if (isCustomBuild()) { + description += "

" + description += "Build not started from official Git repository!
" + description += "
" + description += "Repository: " + getGitRepoURL() + "
" + description += "Branch: " + getGitBranchName() + "
" + description += "

" + } else { + description += "Sources taken from Git branch: " + getGitBranchName() + "
" + } + + item.setDescription(description) + item.save() +} + +/* Only keep the 10 most recent builds. */ +def projectProperties = [ + [$class: 'BuildDiscarderProperty',strategy: [$class: 'LogRotator', numToKeepStr: '10']], +] + +properties(projectProperties) +setDescription() - } - steps { - sh '''#!/bin/bash -git clone --single-branch --branch $GIT_BRANCH $GIT_URL $BUILD_NUMBER -cd $BUILD_NUMBER -sudo apt-get -o Acquire::Check-Valid-Until=false update -sudo mk-build-deps -i -r -t \'apt-get --no-install-recommends -yq\' debian/control -dpkg-buildpackage -b -us -uc -tc -mkdir -p /tmp/$GIT_BRANCH/packages/script -mv ../*.deb /tmp/$GIT_BRANCH/packages/''' - } +pipeline { + agent { + docker { + args '--sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006' + image 'vyos/vyos-build:equuleus' } - stage('Build package armhf') { - agent { - docker { - label 'jessie-amd64' - image 'vyos-build-armhf:equuleus' - args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006 -v /tmp:/tmp' + } + options { + disableConcurrentBuilds() + skipDefaultCheckout() + timeout(time: 30, unit: 'MINUTES') + timestamps() + } + stages { + stage('Fetch') { + steps { + script { + dir('build') { + git branch: getGitBranchName(), url: getGitRepoURL() + } + } } - - } - steps { - sh '''#!/bin/bash -git clone --single-branch --branch $GIT_BRANCH $GIT_URL $BUILD_NUMBER -cd $BUILD_NUMBER -sudo apt-get -o Acquire::Check-Valid-Until=false update -sudo mk-build-deps -i -r -t \'apt-get --no-install-recommends -yq\' debian/control -dpkg-buildpackage -b -us -uc -tc -mkdir -p /tmp/$GIT_BRANCH/packages/script -mv ../*.deb /tmp/$GIT_BRANCH/packages/''' - } } - stage('Build package arm64') { - agent { - docker { - label 'jessie-amd64' - args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006 -v /tmp:/tmp' - image 'vyos-build-arm64:equuleus' + stage('Build') { + steps { + script { + dir('build') { + sh "dpkg-buildpackage -b -us -uc -tc" + } + } } - - } - steps { - sh '''#!/bin/bash -git clone --single-branch --branch $GIT_BRANCH $GIT_URL $BUILD_NUMBER -cd $BUILD_NUMBER -sudo apt-get -o Acquire::Check-Valid-Until=false update -sudo mk-build-deps -i -r -t \'apt-get --no-install-recommends -yq\' debian/control -dpkg-buildpackage -b -us -uc -tc -mkdir -p /tmp/$GIT_BRANCH/packages/script -mv ../*.deb /tmp/$GIT_BRANCH/packages/''' - } } - } } - stage('Deploy packages') { - agent { - node { - label 'jessie-amd64' + post { + cleanup { + deleteDir() } + success { + script { + // archive *.deb artifact on custom builds, deploy to repo otherwise + if ( isCustomBuild()) { + archiveArtifacts artifacts: '*.deb', fingerprint: true + } else { + // publish build result, using SSH-dev.packages.vyos.net Jenkins Credentials + sshagent(['SSH-dev.packages.vyos.net']) { + // build up some fancy groovy variables so we do not need to write/copy + // every option over and over again! - } - steps { - sh '''#!/bin/bash -cd /tmp/$GIT_BRANCH/packages/script -/var/lib/vyos-build/pkg-build.sh $GIT_BRANCH''' - } - } - stage('Cleanup') { - parallel { - stage('Cleanup amd64') { - agent { - node { - label 'jessie-amd64' - } + def VYOS_REPO_PATH = '/home/sentrium/web/dev.packages.vyos.net/public_html/repositories/' + getGitBranchName() + '/' + if (getGitBranchName() != "equuleus") + VYOS_REPO_PATH += 'vyos/' - } - steps { - cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, cleanupMatrixParent: true, deleteDirs: true, disableDeferredWipeout: true) - } - } - stage('Cleanup armhf') { - agent { - node { - label 'jessie-amd64' - } + def SSH_OPTS = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR' + def SSH_REMOTE = 'khagen@10.217.48.113' - } - steps { - cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, cleanupMatrixParent: true, deleteDirs: true, disableDeferredWipeout: true) - } - } - stage('Cleanup arm64') { - agent { - node { - label 'jessie-amd64' - } + echo "Uploading package(s) and updating package(s) in the repository ..." + + files = findFiles(glob: '*.deb') + files.each { PACKAGE -> + def RELEASE = getGitBranchName() + def ARCH = sh(returnStdout: true, script: "dpkg-deb -f ${PACKAGE} Architecture").trim() + def SUBSTRING = sh(returnStdout: true, script: "dpkg-deb -f ${PACKAGE} Package").trim() + def SSH_DIR = '~/VyOS/' + RELEASE + '/' + ARCH + def ARCH_OPT = '' + if (ARCH != 'all') + ARCH_OPT = '-A ' + ARCH - } - steps { - cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, cleanupMatrixParent: true, deleteDirs: true, disableDeferredWipeout: true) - } + // No need to explicitly check the return code. The pipeline + // will fail if sh returns a non 0 exit code + sh """ + ssh ${SSH_OPTS} ${SSH_REMOTE} -t "bash --login -c 'mkdir -p ${SSH_DIR}'" + """ + sh """ + scp ${SSH_OPTS} ${PACKAGE} ${SSH_REMOTE}:${SSH_DIR}/ + """ + sh """ + ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH_OPT} remove ${RELEASE} ${SUBSTRING}'" + """ + sh """ + ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} deleteunreferenced'" + """ + sh """ + ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH_OPT} includedeb ${RELEASE} ${SSH_DIR}/${PACKAGE}'" + """ + } + } + } + } } - } } - } } + -- cgit v1.2.3