From e25cef0da65a4b13991805d1aff7bcda3888f676 Mon Sep 17 00:00:00 2001 From: Bram Prieshof Date: Sun, 21 Feb 2021 02:23:34 +0100 Subject: [PATCH] Added Default and extra image defention --- Alpine.yaml | 3 --- Jenkinsfile | 29 ++++++++++++++++++++++++----- script-if_step-When.groovy | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 script-if_step-When.groovy diff --git a/Alpine.yaml b/Alpine.yaml index e46598f..9fda63e 100644 --- a/Alpine.yaml +++ b/Alpine.yaml @@ -107,9 +107,6 @@ packages: sets: - packages: - alpine-base - - mariadb - - nginx - - samba action: install - packages: diff --git a/Jenkinsfile b/Jenkinsfile index 5fb28fa..d89e97e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,9 @@ pipeline { agent { label 'LXCBuilder' } + parameters { + booleanParam defaultValue: true, description: 'Builds Default images', name: 'BuildDefault' + booleanParam defaultValue: false, description: 'Builds Extra images', name: 'BuildExtra' + } options { skipDefaultCheckout() buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1')) @@ -26,7 +30,7 @@ pipeline { } axis { name 'ImgVariant' - values 'default', 'extended' + values 'Default-default', 'Extra-extended' } } excludes { @@ -43,12 +47,27 @@ pipeline { } stages { stage('Build image') { + when { + anyOf { + allOf { + expression { return (env.ImgVariant).startsWith('Default-') } + environment name: 'BuildDefault', value: 'true' + } + allOf { + expression { return (env.ImgVariant).startsWith('Extra-') } + environment name: 'BuildExtra', value: 'true' + } + } + } steps { // Build script - sh '''echo "$(date) Do Build for $ImgRelease - $ImgVariant" - sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/$ImgRelease-$ImgVariant/ -o image.release=$ImgRelease -o image.variant=$ImgVariant - sudo chown jenkins:jenkins -R $WORKSPACE/REL - ''' + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + sh '''echo "$(date) Do Build for $ImgRelease - $ImgVariant" + ImgVariantName${ImgVariant#Default-} && ImgVariantName${ImgVariantName#Extra-} + sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/$ImgRelease-$ImgVariant/ -o image.release=$ImgRelease -o image.variant=$ImgVariantName + sudo chown jenkins:jenkins -R $WORKSPACE/REL + ''' + } } } } diff --git a/script-if_step-When.groovy b/script-if_step-When.groovy new file mode 100644 index 0000000..36fe8e9 --- /dev/null +++ b/script-if_step-When.groovy @@ -0,0 +1,32 @@ +when { + anyOf { + allOf { + expression { return (env.ImgVariant).startsWith('Default-') } + environment name: 'BuildDefault', value: 'true' + } + allOf { + expression { return (env.ImgVariant).startsWith('Extra-') } + environment name: 'BuildExtra', value: 'true' + } + } +} + + +stage('Build Check') { + steps { + script { + if (env.BuildDefault == 'true' && (env.ImgVariant).startsWith('Default-')) { + echo 'Building Default' + BuildThisLocal = true + } else if (env.BuildExtra == 'true' && (env.ImgVariant).startsWith('Extra-')) { + BuildThisLocal = true + echo 'Building Extra' + } else { + BuildThisLocal = false + echo 'not building' + } + env.BuildThis = BuildThisLocal + } + + } +} \ No newline at end of file