Files
HomeServerCTs/Other-Builds/DistroBuilder.Jenkinsfile

61 lines
2.4 KiB
Plaintext

String[] VariantList = ['Default', 'CustomSquashCentos', 'BrampCustom']
pipeline {
agent any
options {
skipDefaultCheckout()
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1'))
}
tools {
go 'latest'
}
stages {
stage('Prepare') {
steps {
// Cleanup before starting
cleanWs()
// Checkout the repository
git branch: 'main', url: 'https://github.com/lxc/distrobuilder'
}
}
stage('Image Configs'){
steps{
script{
for(Variant in VariantList){
env.Variant = Variant
stage('Build image') {
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
sh '''mkdir -p "$WORKSPACE"/bin "$WORKSPACE"/build
if [ "${Variant}" = "CustomSquashCentos" ] || [ "${Variant}" = "BrampCustom" ]
then
sed -i 's/shared.RunCommand("mount", "-o", "ro", filePath, isoDir)/shared.RunCommand("fuseiso", filePath, isoDir)/g' $WORKSPACE/sources/centos-http.go
sed -i 's/shared.RunCommand("mount", "-o", "ro", imageFile, installDir)/shared.RunCommand("squashfuse", "-o", "ro", imageFile, installDir)/g' $WORKSPACE/sources/centos-http.go
#Not Yet nedded for centos#sed -i 's/shared.RunCommand("mount", "-o", "ro", squashfsImage, squashfsDir)/shared.RunCommand("squashfuse", "-o", "ro", squashfsImage, squashfsDir)/g' $WORKSPACE/sources/centos-http.go
sed -i 's/shared.RunCommand("mount", "-o", "ro", rootfsFile, rootfsDir)/shared.RunCommand("fuse2fs", "-o", "ro", rootfsFile, rootfsDir)/g' $WORKSPACE/sources/centos-http.go
fi
#Customization for BrampCustom version
if [ "${Variant}" = "BrampCustom" ]
then
sed -i '/mirrorlist=/c\baseurl=http://192.168.200.20/centos/\$releasever/BaseOS/x86_64/os/' $WORKSPACE/sources/centos-http.go
fi
gofmt -s -w .
go build -o build -v ./...
go clean
mv build/distrobuilder ./distrobuilder-"$Variant"
'''
}
}
}
}
}
}
stage('Finish') {
steps {
// Save generated files
archiveArtifacts artifacts: 'distrobuilder-*', followSymlinks: false
// Cleaning WorkSpace
cleanWs()
}
}
}
}