Skip to content

Commit 7a68a41

Browse files
committed
Update debian/Jenkinsfile to latest version from DebianRepository
1 parent bc6c505 commit 7a68a41

1 file changed

Lines changed: 62 additions & 41 deletions

File tree

debian/Jenkinsfile

Lines changed: 62 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
#!groovy
22

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

5-
String[] distributions = ['debian:bookworm', 'debian:trixie', 'debian:forky', 'ubuntu:jammy', 'ubuntu:noble']
5+
String[] distributions = [
6+
'debian:bookworm',
7+
'debian:trixie',
8+
'debian:forky',
9+
'ubuntu:jammy',
10+
'ubuntu:noble'
11+
]
612

713
String vendor = 'vitexsoftware'
8-
//String distroFamily = ''
914

1015
properties([
1116
copyArtifactPermission('*')
1217
])
13-
node() {
18+
19+
node {
1420
ansiColor('xterm') {
1521
stage('SCM Checkout') {
1622
checkout scm
@@ -19,72 +25,84 @@ node() {
1925
}
2026

2127
def branches = [:]
28+
2229
distributions.each { distro ->
2330
branches[distro] = {
24-
def distroName = distro
25-
println "Dist:" + distroName
26-
27-
def dist = distroName.split(':')
28-
def distroFamily = dist[0]
29-
def distroCode = dist[1]
30-
def buildImage = ''
31+
def (distroFamily, distroCode) = distro.split(':')
32+
def imageName = "${vendor}/${distroCode}:latest"
33+
def buildImage
3134
def artifacts = []
32-
def buildVer = ''
35+
def buildVer
3336

3437
node {
3538
ansiColor('xterm') {
36-
stage('Checkout ' + distroName) {
39+
stage("Checkout ${distro}") {
3740
checkout scm
38-
def imageName = vendor + '/' + distro
3941
buildImage = docker.image(imageName)
42+
4043
sh 'git checkout debian/changelog'
41-
def version = sh (
42-
script: 'dpkg-parsechangelog --show-field Version',
44+
buildVer = sh(
45+
script: "dpkg-parsechangelog --show-field Version",
4346
returnStdout: true
44-
).trim()
45-
buildVer = version + '.' + env.BUILD_NUMBER + '~' + distroCode
47+
).trim() + ".${env.BUILD_NUMBER}~${distroCode}"
4648
}
47-
stage('Build ' + distroName) {
49+
50+
stage("Build ${distro}") {
4851
buildImage.inside {
49-
sh 'dch -b -v ' + buildVer + ' "' + env.BUILD_TAG + '"'
50-
sh 'sudo apt-get update --allow-releaseinfo-change'
51-
sh 'sudo chown jenkins:jenkins ..'
52-
sh 'debuild-pbuilder -i -us -uc -b'
53-
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'
54-
artifacts = sh (
55-
script: "cat debian/files | awk '{print \$1}'",
52+
sh """
53+
dch -b -v ${buildVer} "${env.BUILD_TAG}"
54+
sudo apt-get update --allow-releaseinfo-change
55+
sudo chown jenkins:jenkins ..
56+
debuild-pbuilder -i -us -uc -b
57+
mkdir -p \$WORKSPACE/dist/debian/
58+
rm -rf \$WORKSPACE/dist/debian/*
59+
for deb in \$(awk '{print \$1}' debian/files); do
60+
mv "../\$deb" \$WORKSPACE/dist/debian/
61+
done
62+
"""
63+
artifacts = sh(
64+
script: "awk '{print \$1}' debian/files",
5665
returnStdout: true
5766
).trim().split('\n')
5867
}
5968
}
6069

61-
stage('Test ' + distroName) {
70+
stage("Test ${distro}") {
6271
buildImage.inside {
63-
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 'echo "deb [trusted=yes] file://///$WORKSPACE/dist/debian/ ./" | sudo tee /etc/apt/sources.list.d/local.list'
66-
sh 'sudo apt-get update --allow-releaseinfo-change'
67-
sh 'echo "INSTALATION"'
72+
def debconf_debug = 0
73+
sh """
74+
cd \$WORKSPACE/dist/debian/
75+
dpkg-scanpackages . /dev/null > Packages
76+
gzip -9c Packages > Packages.gz
77+
cd \$WORKSPACE
78+
echo "deb [trusted=yes] file://///\$WORKSPACE/dist/debian/ ./" | sudo tee /etc/apt/sources.list.d/local.list
79+
sudo apt-get update --allow-releaseinfo-change
80+
"""
6881
artifacts.each { deb_file ->
6982
if (deb_file.endsWith('.deb')) {
7083
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'
84+
def distroCodename = sh(
85+
script: "lsb_release -sc",
86+
returnStdout: true
87+
).trim()
88+
echo "Installing ${pkgName} on ${distroCodename}"
89+
sh """
90+
sudo DEBIAN_FRONTEND=noninteractive DEBCONF_DEBUG=${debconf_debug} \
91+
apt-get -y install ${pkgName} \
92+
|| sudo apt-get -y -f install
93+
"""
7394
}
7495
}
7596
}
7697
}
77-
stage('Archive artifacts ' + distroName ) {
78-
// Only run if previous stages (Build and Test) succeeded
98+
99+
stage("Archive artifacts ${distro}") {
79100
buildImage.inside {
80-
// Archive all produced artifacts listed in debian/files
81101
artifacts.each { deb_file ->
82-
println "Archiving artifact: " + deb_file
83-
archiveArtifacts artifacts: 'dist/debian/' + deb_file
102+
println "Archiving artifact: ${deb_file}"
103+
archiveArtifacts artifacts: "dist/debian/${deb_file}"
84104
}
85105

86-
// Cleanup: remove any produced files named in debian/files
87-
// Try both the dist location and any potential original locations referenced by debian/files
88106
sh '''
89107
set -e
90108
if [ -f debian/files ]; then
@@ -98,10 +116,13 @@ distributions.each { distro ->
98116
'''
99117
}
100118
}
119+
101120
}
102121
}
103122
}
104123
}
124+
125+
105126
parallel branches
106127

107128
node {

0 commit comments

Comments
 (0)