Inital commit

This commit is contained in:
2023-11-18 02:02:18 +01:00
commit b4287386a9
7 changed files with 876 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
pipeline {
agent { label 'LXCBuilder' }
parameters {
booleanParam description: 'Will only update Jenkins piplinefile (jenkinsfile)', name: 'OnlyUpdatePipeline'
booleanParam defaultValue: true, description: 'Enable muticore support for ZX compression', name: 'ZX_Multicore'
string defaultValue: '0', description: 'Set amount of core\'s ZX is allowed when compressing (use 0 for all cores)', name: 'ZX_Cores'
string defaultValue: '192.168.200.11', description: 'Proxy server for packages, when enabled', name: 'ProxyServer'
booleanParam description: 'will disable use of proxy server', name: 'DisProxy'
checkboxParameter(name: 'ImgVersionList', format: 'JSON', displayNodePath: "//Versions/Version", valueNodePath: "//Versions/Version", description: 'Select the vesions(s) that should be build',
pipelineSubmitContent: '{"Versions": [{"Version": "3.17"},{"Version": "3.18"},{"Version": "edge}]}')
}
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/DistroBuilder', selector: lastSuccessful()
// Setup Env
sh '''mkdir $WORKSPACE/REL
mv distrobuilder-* distrobuilder
'''
//Check if Proxy is disabled
script{
if (env.DisProxy == 'true') {
sh '''bash Scripts/UpdateIMGBuildFile-CacheAndRepo.sh -d'''
} else {
env.ProxyServer = ProxyServer
sh '''bash Scripts/UpdateIMGBuildFile-CacheAndRepo.sh -e $ProxyServer'''
}
if (env.OnlyUpdatePipeline == 'true') {
error 'Build ended early, only updated jenkins file'
}
}
}
}
stage('Image Configs'){
steps{
script{
//Run build for requested Versions
for(ImgVersion in ImgVersionList.split(',')){
env.ZX_Multicore = ZX_Multicore
env.ZX_Cores = ZX_Cores
env.ImgVersion = ImgVersion
stage("Build ${ImgVersion}") {
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
sh '''
if $ZX_Multicore; then
export XZ_DEFAULTS="-T $ZX_Cores"
fi
sudo $WORKSPACE/distrobuilder build-lxc CT-Build/Alpine.yaml $WORKSPACE/REL/$ImgVersion/ -o image.Version=$ImgVersion
sudo chown jenkins:jenkins -R $WORKSPACE/REL
mv $WORKSPACE/REL/$ImgVersion/rootfs.tar.xz Alpine-$ImgVersion.tar.xz
'''
}
}
}
}
}
}
stage('Finish') {
steps {
// Save generated files
archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false
// Copy artifacts to /LXCBuild folder
sh '''
mkdir -p /LXCBuild/template/cache
cp -f *.tar.xz /LXCBuild/template/cache
'''
// Cleaning WorkSpace when build successfully
cleanWs cleanWhenAborted: false, cleanWhenFailure: false, cleanWhenNotBuilt: false, cleanWhenUnstable: false
}
}
}
}