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')) } stages { stage('Prepare') { steps { // Cleanup before starting cleanWs() // Checkout the repository checkout scm // Get distrobuilder copyArtifacts filter: 'bin/distrobuilder', fingerprintArtifacts: true, flatten: true, projectName: '/Public/DistroBuilder/BuildConfig=BrampCustom', selector: lastSuccessful() // Setup Env sh '''mkdir $WORKSPACE/REL''' } } stage("Image Configs") { matrix { axes { axis { name 'ImgRelease' values '15.2', 'tumbleweed' } axis { name 'ImgVariant' values 'Default-minmal', 'Default-default' } } //Exclude unwanted conbinatinations // excludes { // exclude { // axis { // name 'ImgRelease' // values 'edge' // } // axis { // name 'ImgVariant' // //use notValues to invert // values 'Extra-extended' // } // } // } stages { stage('Build image') { when { //ImgTypeTest 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 catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh '''echo "$(date) Do Build for $ImgRelease - $ImgVariant" if [ $ImgRelease = "tumbleweed" ] ; then YamlVer=Tumbleweed ; else YamlVer=Leap ; fi ImgVariantName=${ImgVariant#Default-} && ImgVariantName=${ImgVariantName#Extra-} sudo $WORKSPACE/distrobuilder build-lxc OpenSuse-"$YamlVer".yaml $WORKSPACE/REL/$ImgRelease-$ImgVariant/ -o image.release=$ImgRelease -o image.variant=$ImgVariantName sudo chown jenkins:jenkins -R $WORKSPACE/REL mv $WORKSPACE/REL/$ImgRelease-$ImgVariant/rootfs.tar.xz OpenSuse-$ImgRelease-$ImgVariant.tar.xz ''' } } } } } } stage('Finish') { steps { // Save generated files archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false // Cleaning WorkSpace //cleanWs() } } } }