String[] ImgVariantList = ['minmal', 'default', 'jenkinsbuilder', 'imgbuilder', 'jenkins' ] pipeline { agent { label 'LXCBuilder' } 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: 'distrobuilder-BrampCustom', fingerprintArtifacts: true, flatten: true, projectName: 'LXC-ImgBuilder/job/DistroBuilder', selector: lastSuccessful() // Setup Env sh '''mkdir $WORKSPACE/REL mv distrobuilder-* distrobuilder ''' } } stage('Image Configs'){ steps{ script{ env.ImgVariant = ImgVariant stage('Build image') { catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { sh '''echo "$(date) Do Build for $ImgVariant" sudo $WORKSPACE/distrobuilder build-lxc Debian.yaml $WORKSPACE/REL/$ImgVariant/ -o image.variant=$ImgVariantName sudo chown jenkins:jenkins -R $WORKSPACE/REL mv $WORKSPACE/REL/$ImgVariant/rootfs.tar.xz Debian-$ImgVariant.tar.xz ''' } } } } } stage('Finish') { steps { // Save generated files archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false // Cleaning WorkSpace //cleanWs() } } } }