Update 'Jenkinsfile'
All checks were successful
LXC-ImageBuilder/OpenSuse/pipeline/head This commit looks good
All checks were successful
LXC-ImageBuilder/OpenSuse/pipeline/head This commit looks good
This commit is contained in:
177
Jenkinsfile
vendored
177
Jenkinsfile
vendored
@@ -1,90 +1,89 @@
|
|||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'LXCBuilder' }
|
agent { label 'LXCBuilder' }
|
||||||
parameters {
|
parameters {
|
||||||
booleanParam defaultValue: true, description: 'Builds Default images', name: 'BuildDefault'
|
booleanParam defaultValue: true, description: 'Builds Default images', name: 'BuildDefault'
|
||||||
booleanParam defaultValue: false, description: 'Builds Extra images', name: 'BuildExtra'
|
booleanParam defaultValue: false, description: 'Builds Extra images', name: 'BuildExtra'
|
||||||
}
|
}
|
||||||
options {
|
options {
|
||||||
skipDefaultCheckout()
|
skipDefaultCheckout()
|
||||||
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1'))
|
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1'))
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Prepare') {
|
stage('Prepare') {
|
||||||
steps {
|
steps {
|
||||||
// Cleanup before starting
|
// Cleanup before starting
|
||||||
cleanWs()
|
cleanWs()
|
||||||
// Checkout the repository
|
// Checkout the repository
|
||||||
checkout scm
|
checkout scm
|
||||||
// Get distrobuilder
|
// Get distrobuilder
|
||||||
copyArtifacts filter: 'bin/distrobuilder', fingerprintArtifacts: true, flatten: true, projectName: '/Public/DistroBuilder/BuildConfig=BrampCustom', selector: lastSuccessful()
|
copyArtifacts filter: 'bin/distrobuilder', fingerprintArtifacts: true, flatten: true, projectName: '/Public/DistroBuilder/BuildConfig=BrampCustom', selector: lastSuccessful()
|
||||||
// Setup Env
|
// Setup Env
|
||||||
sh '''mkdir $WORKSPACE/REL'''
|
sh '''mkdir $WORKSPACE/REL'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage("Image Configs") {
|
stage("Image Configs") {
|
||||||
matrix {
|
matrix {
|
||||||
axes {
|
axes {
|
||||||
axis {
|
axis {
|
||||||
name 'ImgRelease'
|
name 'ImgRelease'
|
||||||
values '15.2', 'tumbleweed'
|
values '15.2', 'tumbleweed'
|
||||||
}
|
}
|
||||||
axis {
|
axis {
|
||||||
name 'ImgVariant'
|
name 'ImgVariant'
|
||||||
values 'Default-minmal', 'Default-default'
|
values 'Default-minmal', 'Default-default'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Exclude unwanted conbinatinations
|
//Exclude unwanted conbinatinations
|
||||||
// excludes {
|
excludes {
|
||||||
// exclude {
|
exclude {
|
||||||
// axis {
|
axis {
|
||||||
// name 'ImgRelease'
|
name 'ImgRelease'
|
||||||
// values 'edge'
|
values 'tumbleweed'
|
||||||
// }
|
}
|
||||||
// axis {
|
axis {
|
||||||
// name 'ImgVariant'
|
name 'ImgVariant'
|
||||||
// //use notValues to invert
|
notValues 'Default-default'
|
||||||
// values 'Extra-extended'
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
stages {
|
||||||
stages {
|
stage('Build image') {
|
||||||
stage('Build image') {
|
when {
|
||||||
when {
|
//ImgTypeTest
|
||||||
//ImgTypeTest
|
anyOf {
|
||||||
anyOf {
|
allOf {
|
||||||
allOf {
|
expression { return (env.ImgVariant).startsWith('Default-') }
|
||||||
expression { return (env.ImgVariant).startsWith('Default-') }
|
environment name: 'BuildDefault', value: 'true'
|
||||||
environment name: 'BuildDefault', value: 'true'
|
}
|
||||||
}
|
allOf {
|
||||||
allOf {
|
expression { return (env.ImgVariant).startsWith('Extra-') }
|
||||||
expression { return (env.ImgVariant).startsWith('Extra-') }
|
environment name: 'BuildExtra', value: 'true'
|
||||||
environment name: 'BuildExtra', value: 'true'
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
steps {
|
||||||
steps {
|
// Build script
|
||||||
// Build script
|
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
sh '''echo "$(date) Do Build for $ImgRelease - $ImgVariant"
|
||||||
sh '''echo "$(date) Do Build for $ImgRelease - $ImgVariant"
|
if [ $ImgRelease = "tumbleweed" ] ; then YamlVer=Tumbleweed ; else YamlVer=Leap ; fi
|
||||||
if [ $ImgRelease = "tumbleweed" ] ; then YamlVer=Tumbleweed ; else YamlVer=Leap ; fi
|
ImgVariantName=${ImgVariant#Default-} && ImgVariantName=${ImgVariantName#Extra-}
|
||||||
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 $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
|
||||||
sudo chown jenkins:jenkins -R $WORKSPACE/REL
|
mv $WORKSPACE/REL/$ImgRelease-$ImgVariant/rootfs.tar.xz OpenSuse-$ImgRelease-$ImgVariant.tar.xz
|
||||||
mv $WORKSPACE/REL/$ImgRelease-$ImgVariant/rootfs.tar.xz OpenSuse-$ImgRelease-$ImgVariant.tar.xz
|
'''
|
||||||
'''
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
stage('Finish') {
|
||||||
stage('Finish') {
|
steps {
|
||||||
steps {
|
// Save generated files
|
||||||
// Save generated files
|
archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false
|
||||||
archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false
|
// Cleaning WorkSpace
|
||||||
// Cleaning WorkSpace
|
//cleanWs()
|
||||||
//cleanWs()
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user