Jenkins: lib: T2625: add getChangeSetPath() function

Retrieve the path where git should check for modified files to trigger
the pipeline build or not.
This commit is contained in:
Christian Poessinger 2020-06-23 19:14:42 +02:00
parent b594ef7019
commit e05f59a7dd
2 changed files with 27 additions and 12 deletions

View File

@ -59,7 +59,7 @@ def call(description=null, pkgList=null, buildCmd=null) {
environment {
// get relative directory path to Jenkinsfile
BASE_DIR = getJenkinsfilePath()
CHANGESET_DIR = "**/${env.BASE_DIR}*"
CHANGESET_DIR = getChangeSetPath()
DEBIAN_ARCH = sh(returnStdout: true, script: 'dpkg --print-architecture').trim()
}
options {
@ -69,15 +69,6 @@ def call(description=null, pkgList=null, buildCmd=null) {
}
stages {
stage('Fetch Source') {
when {
beforeOptions true
beforeAgent true
anyOf {
changeset "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
triggeredBy cause: "UserIdCause"
}
}
steps {
script {
// package build must be done in "any" subdir. Without it the Debian build system
@ -114,7 +105,7 @@ def call(description=null, pkgList=null, buildCmd=null) {
beforeOptions true
beforeAgent true
anyOf {
changeset "${env.CHANGESET_DIR}"
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
triggeredBy cause: "UserIdCause"
}
@ -180,7 +171,6 @@ def call(description=null, pkgList=null, buildCmd=null) {
if (env.DEBIAN_ARCH != 'all')
ARCH_OPT = '-A ' + env.DEBIAN_ARCH
sh "pwd; ls -al"
files = findFiles(glob: '*.deb')
if (files) {
echo "Uploading package(s) and updating package(s) in the repository ..."

View File

@ -0,0 +1,25 @@
#!/usr/bin/env groovy
// 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() {
tmp = getJenkinsfilePath()
if (tmp)
tmp = "**/" + tmp + "*"
else
tmp = "**/*"
return tmp
}