summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jenkinsfile16
-rw-r--r--Makefile2
-rw-r--r--packages/frr/Jenkinsfile2
-rw-r--r--packages/linux-kernel/Jenkinsfile109
-rw-r--r--packages/netfilter/Jenkinsfile21
-rwxr-xr-xscripts/check-qemu-install2
-rw-r--r--vars/buildPackage.groovy7
-rw-r--r--vars/isCustomBuild.groovy2
-rw-r--r--vars/isPullRequest.groovy21
9 files changed, 142 insertions, 40 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
index c85f95ff..c2ec90a5 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -151,22 +151,16 @@ pipeline {
--version 1.3-rolling-\$(date +%Y%m%d%H%M)
sudo make iso
"""
+
+ if (fileExists('build/live-image-amd64.hybrid.iso') == false) {
+ error('ISO build error')
+ }
}
}
}
stage('Test ISO') {
when {
- beforeOptions true
- beforeAgent true
- anyOf {
- // Do not run ISO build when the Docker container definition or the build pipeline
- // library changes as this has no direct impact on the ISO image.
- not { changeset "**/docker/*" }
- not { changeset "**/vars/*" }
- not { changeset "**/packages/*" }
- triggeredBy 'TimerTrigger'
- triggeredBy cause: "UserIdCause"
- }
+ expression { fileExists 'build/live-image-amd64.hybrid.iso' }
}
steps {
sh "sudo make test"
diff --git a/Makefile b/Makefile
index 5e3d3fc6..60376e09 100644
--- a/Makefile
+++ b/Makefile
@@ -225,7 +225,7 @@ vep1400: check_build_config clean prepare
.ONESHELL:
test:
if [ ! -f build/live-image-amd64.hybrid.iso ]; then
- echo "Could not find build/live-image-amd64.hybrid.iso"
+ echo "Could not find build/live-image-amd64.hybrid.iso"
exit 1
fi
scripts/check-qemu-install --debug build/live-image-amd64.hybrid.iso
diff --git a/packages/frr/Jenkinsfile b/packages/frr/Jenkinsfile
index a5558556..245519bd 100644
--- a/packages/frr/Jenkinsfile
+++ b/packages/frr/Jenkinsfile
@@ -27,5 +27,5 @@ def pkgList = [
'buildCmd': '''cd ..; ./build-frr.sh'''],
]
-// Start package build using library function from https://github.com/c-po/vyos-build
+// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('FRRouting', pkgList)
diff --git a/packages/linux-kernel/Jenkinsfile b/packages/linux-kernel/Jenkinsfile
index 26081116..c53ac3e3 100644
--- a/packages/linux-kernel/Jenkinsfile
+++ b/packages/linux-kernel/Jenkinsfile
@@ -62,21 +62,30 @@ pipeline {
}
environment {
DEBIAN_ARCH = sh(returnStdout: true, script: 'dpkg --print-architecture').trim()
- BASE_DIR = 'packages/linux-kernel'
+ BASE_DIR = getJenkinsfilePath()
+ CHANGESET_DIR = getChangeSetPath()
}
stages {
stage('Fetch') {
steps {
script {
- dir('build') {
- checkout scm
- }
+ checkout scm
+ echo env.CHANGESET_DIR
}
}
}
stage('Git Clone - Components') {
parallel {
stage('Kernel') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR + '/linux') {
checkout([$class: 'GitSCM',
@@ -84,12 +93,20 @@ pipeline {
extensions: [[$class: 'CleanCheckout'],
[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
branches: [[name: 'v4.19.128' ]],
- userRemoteConfigs: [[url: 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git']]])
+ userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git']]])
}
- sh "pwd; ls -al"
}
}
stage('Kernel Firmware') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR + '/linux-firmware') {
checkout([$class: 'GitSCM',
@@ -97,42 +114,69 @@ pipeline {
extensions: [[$class: 'CleanCheckout'],
[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
branches: [[name: '20191022' ]],
- userRemoteConfigs: [[url: 'https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git']]])
+ userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git']]])
}
}
}
stage('WireGuard') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR + '/wireguard') {
checkout([$class: 'GitSCM',
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
branches: [[name: 'debian/1.0.20200319-1_bpo10+1' ]],
- userRemoteConfigs: [[url: 'https://salsa.debian.org/debian/wireguard.git']]])
+ userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://salsa.debian.org/debian/wireguard.git']]])
}
dir(env.BASE_DIR + '/wireguard-linux-compat') {
checkout([$class: 'GitSCM',
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
branches: [[name: 'debian/1.0.20200429-2_bpo10+1' ]],
- userRemoteConfigs: [[url: 'https://salsa.debian.org/debian/wireguard-linux-compat.git']]])
+ userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://salsa.debian.org/debian/wireguard-linux-compat.git']]])
}
}
}
stage('Accel-PPP') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR + '/accel-ppp') {
checkout([$class: 'GitSCM',
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
branches: [[name: 'ed7b28722ec85' ]],
- userRemoteConfigs: [[url: 'https://github.com/accel-ppp/accel-ppp.git']]])
+ userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://github.com/accel-ppp/accel-ppp.git']]])
}
}
}
}
}
stage('Compile Kernel') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR) {
sh "./build-kernel.sh"
@@ -143,6 +187,15 @@ pipeline {
stage('Kernel Module(s)') {
parallel {
stage('WireGuard') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR) {
// In Debian wireguard repo commit edb7124c866ea0e506278c311fc82dfde1f957be
@@ -155,6 +208,15 @@ pipeline {
}
}
stage('Accel-PPP') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR) {
sh "./build-accel-ppp.sh"
@@ -162,6 +224,15 @@ pipeline {
}
}
stage('Intel Driver(s)') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR) {
sh "./build-intel-drivers.sh"
@@ -169,6 +240,15 @@ pipeline {
}
}
stage('Intel QuickAssist Technology') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR) {
sh "./build-intel-qat.sh"
@@ -181,6 +261,15 @@ pipeline {
// again on the kernel source and this could confuse other build systems
// like generating Intel or Accel-PPP drivers. Better safe then sorry!
stage('Linux Firmware') {
+ when {
+ beforeOptions true
+ beforeAgent true
+ anyOf {
+ changeset pattern: "${env.CHANGESET_DIR}"
+ triggeredBy 'TimerTrigger'
+ triggeredBy cause: "UserIdCause"
+ }
+ }
steps {
dir(env.BASE_DIR) {
sh "./build-linux-firmware.sh"
diff --git a/packages/netfilter/Jenkinsfile b/packages/netfilter/Jenkinsfile
index 882ba034..60df1318 100644
--- a/packages/netfilter/Jenkinsfile
+++ b/packages/netfilter/Jenkinsfile
@@ -21,13 +21,13 @@
@Library('vyos-build@current')_
def pkgList = [
- // pkg-libnftnl
+ // libnftnl
['name': 'pkg-libnftnl',
'scmCommit': 'debian/1.1.7-1',
'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-libnftnl.git',
'buildCmd': 'dpkg-buildpackage -uc -us -tc -b'],
- // pkg-nftables
+ // nftables
['name': 'pkg-nftables',
'scmCommit': 'debian/0.9.6-1',
'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-nftables.git',
@@ -35,18 +35,17 @@ def pkgList = [
sed -i "s/debhelper-compat.*/debhelper-compat (= 12),/" debian/control;
dpkg-buildpackage -uc -us -tc -b'''],
- // pkg-conntrack-tools
- ['name': 'pkg-conntrack-tools',
- 'scmCommit': 'debian/1%1.4.6-1',
- 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-conntrack-tools.git',
+ // libnetfilter-conntrack
+ ['name': 'pkg-libnetfilter-conntrack',
+ 'scmCommit': 'debian/1.0.8-1',
+ 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-libnetfilter-conntrack.git',
'buildCmd': 'dpkg-buildpackage -uc -us -tc -b'],
- // pkg-conntrack-tools
+ // conntrack-tools
['name': 'pkg-conntrack-tools',
- 'scmCommit': 'debian/1.0.8-1',
- 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-libnetfilter-conntrack.git',
- 'buildCmd': '''sudo dpkg -i ../libnetfilter*.deb;
- dpkg-buildpackage -uc -us -tc -b''']
+ 'scmCommit': 'debian/1%1.4.6-1',
+ 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-conntrack-tools.git',
+ 'buildCmd': '''sudo dpkg -i ../libnetfilter*.deb && dpkg-buildpackage -uc -us -tc -b'''],
]
// Start package build using library function from https://github.com/c-po/vyos-build
diff --git a/scripts/check-qemu-install b/scripts/check-qemu-install
index 43117b2b..b5ccc0b3 100755
--- a/scripts/check-qemu-install
+++ b/scripts/check-qemu-install
@@ -291,7 +291,7 @@ try:
#################################################
log.info("Executing test-suite ")
- c.sendline('sudo /usr/bin/vyos-smoketest')
+ c.sendline('/usr/bin/vyos-smoketest')
i = c.expect(['\n +Invalid command:',
'\n +Set failed',
'No such file or directory',
diff --git a/vars/buildPackage.groovy b/vars/buildPackage.groovy
index edd854b7..463170e6 100644
--- a/vars/buildPackage.groovy
+++ b/vars/buildPackage.groovy
@@ -35,10 +35,8 @@ def call(description=null, pkgList=null, buildCmd=null) {
script {
// create container name on demand
def branchName = getGitBranchName()
- // Adjust PR target branch name so we can re-map it to the proper
- // Docker image. CHANGE_ID is set only for pull requests, so it is
- // safe to access the pullRequest global variable
- if (env.CHANGE_ID) {
+ // Adjust PR target branch name so we can re-map it to the proper Docker image.
+ if (isPullRequest()) {
branchName = "${env.CHANGE_TARGET}".toLowerCase()
}
if (branchName.equals("master")) {
@@ -106,6 +104,7 @@ def call(description=null, pkgList=null, buildCmd=null) {
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
+ expression { isPullRequest() }
triggeredBy 'TimerTrigger'
triggeredBy cause: "UserIdCause"
}
diff --git a/vars/isCustomBuild.groovy b/vars/isCustomBuild.groovy
index 301fdd42..c5e5fab7 100644
--- a/vars/isCustomBuild.groovy
+++ b/vars/isCustomBuild.groovy
@@ -22,5 +22,5 @@ def call() {
def gitURI = 'git@github.com:vyos/' + getGitRepoName()
def httpURI = 'https://github.com/vyos/' + getGitRepoName()
- return !((getGitRepoURL() == gitURI) || (getGitRepoURL() == httpURI)) || env.CHANGE_ID
+ return !((getGitRepoURL() == gitURI) || (getGitRepoURL() == httpURI)) || isPullRequest()
}
diff --git a/vars/isPullRequest.groovy b/vars/isPullRequest.groovy
new file mode 100644
index 00000000..813341bc
--- /dev/null
+++ b/vars/isPullRequest.groovy
@@ -0,0 +1,21 @@
+// Copyright (C) 2020 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/>.
+
+def call() {
+ if (env.CHANGE_ID) {
+ return true
+ }
+ return false
+}