*Added CT 'Uptime Kuma' * Added pm2-logrotate to CT nodered and z2mqtt *Added fix for failing to build CT's that use Sudo commands. The new sudo version enables PTY by default, configured to temporarily disabled it while building
81 lines
4.3 KiB
Plaintext
81 lines
4.3 KiB
Plaintext
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: 'ImgVariantList', format: 'JSON', displayNodePath: "//Variants/Variant", valueNodePath: "//Variants/Variant", description: 'Select the variant(s) that should be build',
|
|
pipelineSubmitContent: '{"Variants": [{"Variant": "minimal"},{"Variant": "default"},{"Variant": "gitea"},{"Variant": "nginx"},{"Variant": "ddns"},{"Variant": "transfersh"},{"Variant": "iscsi"},{"Variant": "z2mqtt"},{"Variant": "nodered"},{"Variant": "nodejs"},{"Variant": "nextcloud"},{"Variant": "mqtt"},{"Variant": "hass"},{"Variant": "mailbackup"},{"Variant": "elkarbackupALP"},{"Variant": "heimdall"},{"Variant": "vouchproxy"},{"Variant": "freshrss"},{"Variant": "uptimekuma"}]}')
|
|
}
|
|
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 variants
|
|
for(ImgVariant in ImgVariantList.split(',')){
|
|
env.ZX_Multicore = ZX_Multicore
|
|
env.ZX_Cores = ZX_Cores
|
|
env.ImgVariant = ImgVariant
|
|
stage("Build ${ImgVariant}") {
|
|
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/$ImgVariant/ -o image.variant=$ImgVariant
|
|
sudo chown jenkins:jenkins -R $WORKSPACE/REL
|
|
mv $WORKSPACE/REL/$ImgVariant/rootfs.tar.xz Alpine-$ImgVariant.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
|
|
}
|
|
}
|
|
}
|
|
} |