Skip to content

Commit df9285b

Browse files
committed
Jenkinsfile update
1 parent 9117fbc commit df9285b

1 file changed

Lines changed: 40 additions & 53 deletions

File tree

debian/Jenkinsfile

Lines changed: 40 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!groovy
22

3-
// Aktuální verze Pipeline: https://github.com/VitexSoftware/BuildImages/blob/main/Test/Jenkinsfile-parael
3+
// Current version of this Pipeline https://github.com/VitexSoftware/BuildImages/blob/main/Test/Jenkinsfile-parael
44

55
String[] distributions = [
66
'debian:bookworm',
@@ -11,13 +11,12 @@ String[] distributions = [
1111
]
1212

1313
String vendor = 'vitexsoftware'
14-
String imagePrefix = 'multiflexi-'
14+
//String distroFamily = ''
1515

1616
properties([
1717
copyArtifactPermission('*')
1818
])
19-
20-
node {
19+
node() {
2120
ansiColor('xterm') {
2221
stage('SCM Checkout') {
2322
checkout scm
@@ -29,81 +28,70 @@ def branches = [:]
2928

3029
distributions.each { distro ->
3130
branches[distro] = {
32-
def (distroFamily, distroCode) = distro.split(':')
33-
def imageName = "${vendor}/${imagePrefix}${distroCode}:latest"
34-
def buildImage
31+
def distroName = distro
32+
println "Dist:" + distroName
33+
34+
def dist = distroName.split(':')
35+
def distroFamily = dist[0]
36+
def distroCode = dist[1]
37+
def buildImage = ''
3538
def artifacts = []
36-
def buildVer
39+
def buildVer = ''
3740

3841
node {
3942
ansiColor('xterm') {
40-
stage("Checkout ${distro}") {
43+
stage('Checkout ' + distroName) {
4144
checkout scm
45+
def imageName = vendor + '/' + distro
4246
buildImage = docker.image(imageName)
43-
4447
sh 'git checkout debian/changelog'
45-
buildVer = sh(
46-
script: "dpkg-parsechangelog --show-field Version",
48+
def version = sh (
49+
script: 'dpkg-parsechangelog --show-field Version',
4750
returnStdout: true
48-
).trim() + ".${env.BUILD_NUMBER}~${distroCode}"
51+
).trim()
52+
buildVer = version + '.' + env.BUILD_NUMBER + '~' + distroCode
4953
}
50-
51-
stage("Build ${distro}") {
54+
stage('Build ' + distroName) {
5255
buildImage.inside {
53-
sh """
54-
dch -b -v ${buildVer} "${env.BUILD_TAG}"
55-
sudo apt-get update --allow-releaseinfo-change
56-
sudo chown jenkins:jenkins ..
57-
debuild-pbuilder -i -us -uc -b
58-
mkdir -p \$WORKSPACE/dist/debian/
59-
rm -rf \$WORKSPACE/dist/debian/*
60-
for deb in \$(awk '{print \$1}' debian/files); do
61-
mv "../\$deb" \$WORKSPACE/dist/debian/
62-
done
63-
"""
64-
artifacts = sh(
65-
script: "awk '{print \$1}' debian/files",
56+
sh 'dch -b -v ' + buildVer + ' "' + env.BUILD_TAG + '"'
57+
sh 'sudo apt-get update --allow-releaseinfo-change'
58+
sh 'sudo chown jenkins:jenkins ..'
59+
sh 'debuild-pbuilder -i -us -uc -b'
60+
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'
61+
artifacts = sh (
62+
script: "cat debian/files | awk '{print \$1}'",
6663
returnStdout: true
6764
).trim().split('\n')
6865
}
6966
}
7067

71-
stage("Test ${distro}") {
68+
stage('Test ' + distroName) {
7269
buildImage.inside {
73-
def debconf_debug = 0
74-
sh """
75-
cd \$WORKSPACE/dist/debian/
76-
dpkg-scanpackages . /dev/null > Packages
77-
gzip -9c Packages > Packages.gz
78-
cd \$WORKSPACE
79-
echo "deb [trusted=yes] file://///\$WORKSPACE/dist/debian/ ./" | sudo tee /etc/apt/sources.list.d/local.list
80-
sudo apt-get update --allow-releaseinfo-change
81-
"""
70+
def debconf_debug = 0 //Set to "5" or "developer" to debug debconf
71+
sh 'cd $WORKSPACE/dist/debian/ ; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz; cd $WORKSPACE'
72+
sh 'echo "deb [trusted=yes] file://///$WORKSPACE/dist/debian/ ./" | sudo tee /etc/apt/sources.list.d/local.list'
73+
sh 'sudo apt-get update --allow-releaseinfo-change'
74+
sh 'echo "INSTALATION"'
8275
artifacts.each { deb_file ->
8376
if (deb_file.endsWith('.deb')) {
8477
def pkgName = deb_file.tokenize('/')[-1].replaceFirst(/_.*/, '')
85-
def distroCodename = sh(
86-
script: "lsb_release -sc",
87-
returnStdout: true
88-
).trim()
89-
echo "Installing ${pkgName} on ${distroCodename}"
90-
sh """
91-
sudo DEBIAN_FRONTEND=noninteractive DEBCONF_DEBUG=${debconf_debug} \
92-
apt-get -y install ${pkgName} \
93-
|| sudo apt-get -y -f install
94-
"""
78+
sh 'echo -e "${GREEN} installing ' + pkgName + ' on `lsb_release -sc` ${ENDCOLOR} "'
79+
sh 'sudo DEBIAN_FRONTEND=noninteractive DEBCONF_DEBUG=' + debconf_debug + ' apt-get -y install ' + pkgName + ' || sudo apt-get -y -f install'
9580
}
9681
}
9782
}
9883
}
99-
100-
stage("Archive artifacts ${distro}") {
84+
stage('Archive artifacts ' + distroName ) {
85+
// Only run if previous stages (Build and Test) succeeded
10186
buildImage.inside {
87+
// Archive all produced artifacts listed in debian/files
10288
artifacts.each { deb_file ->
103-
println "Archiving artifact: ${deb_file}"
104-
archiveArtifacts artifacts: "dist/debian/${deb_file}"
89+
println "Archiving artifact: " + deb_file
90+
archiveArtifacts artifacts: 'dist/debian/' + deb_file
10591
}
10692

93+
// Cleanup: remove any produced files named in debian/files
94+
// Try both the dist location and any potential original locations referenced by debian/files
10795
sh '''
10896
set -e
10997
if [ -f debian/files ]; then
@@ -117,7 +105,6 @@ distributions.each { distro ->
117105
'''
118106
}
119107
}
120-
121108
}
122109
}
123110
}

0 commit comments

Comments
 (0)