You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
5.5 KiB
200 lines
5.5 KiB
#!groovy |
|
|
|
// Docker images generated by https://github.com/VitexSoftware/BuildImages |
|
|
|
|
|
pipeline { |
|
agent none |
|
|
|
options { |
|
ansiColor('xterm') |
|
copyArtifactPermission('*'); |
|
//disableConcurrentBuilds() |
|
} |
|
|
|
environment { |
|
RED = '\\e[31m' |
|
GREEN = '\\e[32m' |
|
ENDCOLOR = '\\e[0m' |
|
} |
|
|
|
stages { |
|
|
|
stage('debian-buster') { |
|
agent { |
|
docker { image 'vitexsoftware/debian:oldstable' } |
|
} |
|
steps { |
|
dir('build/debian/package') { |
|
checkout scm |
|
buildPackage() |
|
installPackages() |
|
} |
|
stash includes: 'dist/**', name: 'dist-buster' |
|
} |
|
post { |
|
success { |
|
archiveArtifacts 'dist/debian/' |
|
copyArtifact() |
|
} |
|
} |
|
} |
|
|
|
stage('debian-bullseye') { |
|
agent { |
|
docker { image 'vitexsoftware/debian:stable' } |
|
} |
|
steps { |
|
dir('build/debian/package') { |
|
checkout scm |
|
buildPackage() |
|
installPackages() |
|
} |
|
stash includes: 'dist/**', name: 'dist-bullseye' |
|
} |
|
post { |
|
success { |
|
archiveArtifacts 'dist/debian/' |
|
copyArtifact() |
|
} |
|
} |
|
} |
|
|
|
stage('debian-bookworm') { |
|
agent { |
|
docker { image 'vitexsoftware/debian:testing' } |
|
} |
|
steps { |
|
dir('build/debian/package') { |
|
checkout scm |
|
buildPackage() |
|
installPackages() |
|
} |
|
stash includes: 'dist/**', name: 'dist-bookworm' |
|
} |
|
post { |
|
success { |
|
archiveArtifacts 'dist/debian/' |
|
copyArtifact() |
|
} |
|
} |
|
} |
|
|
|
stage('ubuntu-focal') { |
|
agent { |
|
docker { image 'vitexsoftware/ubuntu:stable' } |
|
} |
|
steps { |
|
dir('build/debian/package') { |
|
checkout scm |
|
buildPackage() |
|
installPackages() |
|
} |
|
stash includes: 'dist/**', name: 'dist-focal' |
|
} |
|
post { |
|
success { |
|
archiveArtifacts 'dist/debian/' |
|
copyArtifact() |
|
} |
|
} |
|
} |
|
|
|
stage('ubuntu-hirsute') { |
|
agent { |
|
docker { image 'vitexsoftware/ubuntu:testing' } |
|
} |
|
steps { |
|
dir('build/debian/package') { |
|
checkout scm |
|
buildPackage() |
|
installPackages() |
|
} |
|
stash includes: 'dist/**', name: 'dist-hirsute' |
|
} |
|
post { |
|
success { |
|
archiveArtifacts 'dist/debian/' |
|
copyArtifact() |
|
} |
|
} |
|
} |
|
|
|
} |
|
} |
|
|
|
def copyArtifact(){ |
|
step ([$class: 'CopyArtifact', |
|
projectName: '${JOB_NAME}', |
|
filter: "**/*.deb", |
|
target: '/var/tmp/deb', |
|
flatten: true, |
|
selector: specific('${BUILD_NUMBER}') |
|
]); |
|
} |
|
|
|
def buildPackage() { |
|
|
|
def DIST = sh ( |
|
script: 'lsb_release -sc', |
|
returnStdout: true |
|
).trim() |
|
|
|
def DISTRO = sh ( |
|
script: 'lsb_release -sd', |
|
returnStdout: true |
|
).trim() |
|
|
|
|
|
def SOURCE = sh ( |
|
script: 'dpkg-parsechangelog --show-field Source', |
|
returnStdout: true |
|
).trim() |
|
|
|
def VERSION = sh ( |
|
script: 'dpkg-parsechangelog --show-field Version', |
|
returnStdout: true |
|
).trim() |
|
|
|
ansiColor('vga') { |
|
echo '\033[42m\033[90mBuild debian package ' + SOURCE + ' v' + VERSION + ' for ' + DISTRO + '\033[0m' |
|
} |
|
|
|
def VER = VERSION + '~' + DIST + '~' + env.BUILD_NUMBER |
|
|
|
//Buster problem: Can't continue: dpkg-parsechangelog is not new enough(needs to be at least 1.17.0) |
|
// |
|
// debianPbuilder additionalBuildResults: '', |
|
// components: '', |
|
// distribution: DIST, |
|
// keyring: '', |
|
// mirrorSite: 'http://deb.debian.org/debian/', |
|
// pristineTarName: '' |
|
sh 'dch -b -v ' + VER + ' "' + env.BUILD_TAG + '"' |
|
sh 'sudo apt-get update' |
|
sh 'debuild-pbuilder -i -us -uc -b' |
|
sh 'mkdir -p $WORKSPACE/dist/debian/ ; rm -rf $WORKSPACE/dist/debian/* ; for deb in $(cat debian/files | awk \'{print $1}\'); do mv "../$deb" $WORKSPACE/dist/debian/; done' |
|
} |
|
|
|
def installPackages() { |
|
def DEBCONF_DEBUG=0 //Set to "5" or "developer" to debug debconf |
|
sh 'cd $WORKSPACE/dist/debian/ ; dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz; cd $WORKSPACE' |
|
sh 'echo "deb [trusted=yes] file:///$WORKSPACE/dist/debian/ ./" | sudo tee /etc/apt/sources.list.d/local.list' |
|
sh 'sudo apt-get update' |
|
sh 'echo "${GREEN} INSTALATION ${ENDCOLOR}"' |
|
sh 'IFS="\n\b"; for package in `ls $WORKSPACE/dist/debian/ | grep .deb | awk -F_ \'{print \$1}\'` ; do echo -e "${GREEN} installing ${package} on `lsb_release -sc` ${ENDCOLOR} " ; sudo DEBIAN_FRONTEND=noninteractive DEBCONF_DEBUG=' + DEBCONF_DEBUG + ' apt-get -y install $package ; done;' |
|
|
|
sh 'echo "${GREEN} Dry Run ${ENDCOLOR}"' |
|
sh 'abraflexi-certbot' |
|
sh 'abraflexi-fake-address' |
|
sh 'abraflexiget' |
|
sh 'fbbenchmark' |
|
sh 'fbcp' |
|
sh 'fbdc' |
|
sh 'fbget' |
|
sh 'fbnc' |
|
sh 'fbput' |
|
sh 'fbwh' |
|
sh 'fbwhwipe' |
|
|
|
}
|
|
|