Skip to content

Commit 6eb8b60

Browse files
Vitexusoz-agent
andcommitted
ci: update Jenkinsfile.release to use multiflexi build images
Use multiflexi-<distroFamily>:<distroCode> Docker images instead of multiflexi-<distroCode>:latest for builds with repo.multiflexi.eu. Add workspace cleanup to prevent permission issues. Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent e4a1c40 commit 6eb8b60

1 file changed

Lines changed: 12 additions & 13 deletions

File tree

debian/Jenkinsfile.release

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#!groovy
22

3-
// Current version of this Pipeline https://raw.githubusercontent.com/VitexSoftware/multiflexi-buildimages/refs/heads/main/Test/multiflexi-halloworld/Jenkinsfile
4-
53
String[] distributions = ['debian:bookworm', 'debian:trixie', 'debian:forky', 'ubuntu:jammy', 'ubuntu:noble']
64

75
String vendor = 'vitexsoftware'
@@ -14,6 +12,7 @@ properties([
1412
node() {
1513
ansiColor('xterm') {
1614
stage('SCM Checkout') {
15+
sh 'sudo chown -R jenkins:jenkins . || true'
1716
checkout scm
1817
}
1918
}
@@ -34,8 +33,9 @@ distributions.each { distro ->
3433
node {
3534
ansiColor('xterm') {
3635
stage('Checkout ' + distroName) {
36+
sh 'sudo chown -R jenkins:jenkins . || true'
3737
checkout scm
38-
def imageName = vendor + '/' + imagePrefix + distroCode + ':latest'
38+
def imageName = vendor + '/' + imagePrefix + dist[0] + ':' + distroCode
3939
buildImage = docker.image(imageName)
4040
sh 'git checkout debian/changelog'
4141
def version = sh (
@@ -45,11 +45,12 @@ distributions.each { distro ->
4545
buildVer = version + '.' + env.BUILD_NUMBER + '~' + distroCode
4646
}
4747
stage('Build ' + distroName) {
48-
buildImage.inside {
48+
buildImage.inside('--ipc=host') {
4949
sh 'dch -b -v ' + buildVer + ' "' + env.BUILD_TAG + '"'
5050
sh 'sudo apt-get update --allow-releaseinfo-change'
51-
sh 'sudo chown jenkins:jenkins ..'
52-
sh 'debuild-pbuilder -i -us -uc -b'
51+
sh 'sudo chown -R jenkins:jenkins . ..'
52+
sh 'sudo rm -rf debian/$(dpkg-parsechangelog --show-field Source)/ debian/.debhelper/ debian/tmp/'
53+
sh 'debuild-pbuilder -r"sudo -E" -i -us -uc -b'
5354
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'
5455
artifacts = sh (
5556
script: "cat debian/files | awk '{print \$1}'",
@@ -59,30 +60,28 @@ distributions.each { distro ->
5960
}
6061

6162
stage('Test ' + distroName) {
62-
buildImage.inside {
63+
buildImage.inside('--ipc=host') {
6364
def debconf_debug = 0 //Set to "5" or "developer" to debug debconf
64-
sh 'cd $WORKSPACE/dist/debian/ ; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz; cd $WORKSPACE'
65+
sh 'cd $WORKSPACE/dist/debian/ ; dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz; cd $WORKSPACE'
6566
sh 'echo "deb [trusted=yes] file://///$WORKSPACE/dist/debian/ ./" | sudo tee /etc/apt/sources.list.d/local.list'
6667
sh 'sudo apt-get update --allow-releaseinfo-change'
6768
sh 'echo "INSTALATION"'
6869
artifacts.each { deb_file ->
6970
if (deb_file.endsWith('.deb')) {
70-
def pkgName = deb_file.tokenize('/')[-1].replaceFirst(/_.*/, '')
71-
sh 'echo -e "${GREEN} installing ' + pkgName + ' on `lsb_release -sc` ${ENDCOLOR} "'
72-
sh 'sudo DEBIAN_FRONTEND=noninteractive DEBCONF_DEBUG=' + debconf_debug + ' apt-get -y install ' + pkgName + ' || sudo apt-get -y -f install'
71+
sh 'echo -e "${GREEN} installing ' + deb_file + ' on `lsb_release -sc` ${ENDCOLOR} "'
72+
sh 'sudo DEBIAN_FRONTEND=noninteractive DEBCONF_DEBUG=' + debconf_debug + ' apt-get -y install $WORKSPACE/dist/debian/' + deb_file
7373
}
7474
}
7575
}
7676
}
7777
stage('Archive artifacts ' + distroName ) {
7878
// Only run if previous stages (Build and Test) succeeded
79-
buildImage.inside {
79+
buildImage.inside('--ipc=host') {
8080
// Archive all produced artifacts listed in debian/files
8181
artifacts.each { deb_file ->
8282
println "Archiving artifact: " + deb_file
8383
archiveArtifacts artifacts: 'dist/debian/' + deb_file
8484
}
85-
8685
// Cleanup: remove any produced files named in debian/files
8786
// Try both the dist location and any potential original locations referenced by debian/files
8887
sh '''

0 commit comments

Comments
 (0)