From 76bd35e709977e8832dea54fa27a916b8ad84af8 Mon Sep 17 00:00:00 2001 From: Marc Mattmueller Date: Wed, 11 Nov 2020 10:20:46 +0100 Subject: [PATCH] jenkins: refactored submodule handling and set distro version on release Signed-off-by: Marc Mattmueller --- Jenkinsfile | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1ccd4ff..e536d7a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -40,15 +40,7 @@ pipeline { stage('prepare') { steps { script { - if(isReleaseRequested("${params.RLS_VERSION}")) { - sh 'git submodule update' // set all submodules to freezed commit - } - else { - sh 'git submodule update --remote --rebase' // update all submodules to HEAD - } - submoduleStatus = sh(returnStdout: true, script: "git submodule status").trim() // print submodule hashes to jenkins log - println "${submoduleStatus}" - + handle_submodules("${params.RLS_VERSION}") version = build_version("${params.RLS_VERSION}") println "----------------------------------\n Job Parameters:\n----------------------------------\n\ @@ -58,9 +50,13 @@ pipeline { RLS_VERSION = ${params.RLS_VERSION}\n\ --> version = ${version}\n\ ----------------------------------\n" - env.BUILD_VERSION = "${version}" currentBuild.displayName = "${version}-${MACHINE}-${IMAGE_TYPE}" //replace Bitbake timestamp after building + + if(isRelease("${params.RLS_VERSION}")) { + change_distro_version("${version}") + } + } writeFile file: 'VERSION', text: "${PACKAGE_NAME}: ${BUILD_VERSION}" } @@ -89,16 +85,27 @@ pipeline { } -def isReleaseRequested(versionParam) { +def isRelease(versionParam) { if((versionParam == "") || (versionParam == "latest")) { return false } return true } +def handle_submodules(versionParam) { + if(isRelease(versionParam)) { + sh 'git submodule update' // set all submodules to freezed commit + } + else { + sh 'git submodule update --remote --rebase' // update all submodules to HEAD + } + submoduleStatus = sh(returnStdout: true, script: "git submodule status").trim() // print submodule hashes to jenkins log + println "${submoduleStatus}" +} + def build_version(versionParam) { def gitCmd = "git describe --tags" - if(!isReleaseRequested(versionParam)) { + if(!isRelease(versionParam)) { gitCmd = "${gitCmd} --dirty" } gitversion = sh(returnStdout: true, script: "${gitCmd}").trim() @@ -111,6 +118,13 @@ def build_version(versionParam) { return rlsVersion } +def change_distro_version(versionString){ + println "Set the distro version to ${versionString}..." + def versionTag = "DISTRO_VERSION = " + def sedCmd = "sed -i 's/^${versionTag}.*\$/${versionTag}\"${versionString}\"/'" + sh(script:"${sedCmd} meta-netmodule-distro/conf/distro/netmodule-linux.conf") +} + def build_and_archive() { if (params.IMAGE_TYPE == 'sdk') {