diff --git a/Jenkinsfile-Squential b/Jenkinsfile-Squential index fb543b7..62daf2a 100644 --- a/Jenkinsfile-Squential +++ b/Jenkinsfile-Squential @@ -1,5 +1,12 @@ +String[] ImgReleaseList = ['3.13', 'edge'] +String[] ImgVariantList = ['Default-default', 'Extra-extended'] + 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')) @@ -17,28 +24,39 @@ pipeline { sh '''mkdir $WORKSPACE/REL''' } } - stage('Build image 3.13,default') { - steps { - // Build script - sh '''sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/3.13-default/ -o image.release=3.13 -o image.variant=default - sudo chown jenkins:jenkins -R $WORKSPACE/REL - ''' - } - } - stage('Build image; 3.13,extended') { - steps { - // Build script - sh '''sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/3.13-extended/ -o image.release=3.13 -o image.variant=extended - sudo chown jenkins:jenkins -R $WORKSPACE/REL - ''' - } - } - stage('Build image: edge,default') { - steps { - // Build script - sh '''sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/edge-default/ -o image.release=edge -o image.variant=default - sudo chown jenkins:jenkins -R $WORKSPACE/REL - ''' + stage('Image Configs'){ + steps{ + script{ + for(ImgRelease in ImgReleaseList){ + for(ImgVariant in ImgVariantList){ + stage('Build image') { + when { + anyOf { + allOf { + expression { return (ImgVariant).startsWith('Default-') } + environment name: 'BuildDefault', value: 'true' + } + allOf { + expression { return (ImgVariant).startsWith('Extra-') } + environment name: 'BuildExtra', value: 'true' + } + } + } + steps { + // Build script + 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 + mv $WORKSPACE/REL/$ImgRelease-$ImgVariant/rootfs.tar.xz $ImgVariant-$ImgRelease.tar.xz + ''' + } + } + } + } + } + } } } stage('Finish') { diff --git a/Jenkinsfile-SquentialBCK b/Jenkinsfile-SquentialBCK new file mode 100644 index 0000000..fb543b7 --- /dev/null +++ b/Jenkinsfile-SquentialBCK @@ -0,0 +1,53 @@ +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: 'bin/distrobuilder', fingerprintArtifacts: true, flatten: true, projectName: '/Public/DistroBuilder/BuildConfig=BrampCustom', selector: lastSuccessful() + // Setup Env + sh '''mkdir $WORKSPACE/REL''' + } + } + stage('Build image 3.13,default') { + steps { + // Build script + sh '''sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/3.13-default/ -o image.release=3.13 -o image.variant=default + sudo chown jenkins:jenkins -R $WORKSPACE/REL + ''' + } + } + stage('Build image; 3.13,extended') { + steps { + // Build script + sh '''sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/3.13-extended/ -o image.release=3.13 -o image.variant=extended + sudo chown jenkins:jenkins -R $WORKSPACE/REL + ''' + } + } + stage('Build image: edge,default') { + steps { + // Build script + sh '''sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/edge-default/ -o image.release=edge -o image.variant=default + sudo chown jenkins:jenkins -R $WORKSPACE/REL + ''' + } + } + stage('Finish') { + steps { + // Save generated files + archiveArtifacts artifacts: 'REL/**', followSymlinks: false + // Cleaning WorkSpace + //cleanWs() + } + } + } +} \ No newline at end of file