Skip to content

Commit e06940d

Browse files
author
Vitor Bandeira
committed
ci: move deb to Jenkins
Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
1 parent 5328da6 commit e06940d

File tree

2 files changed

+76
-8
lines changed

2 files changed

+76
-8
lines changed

Jenkinsfile

Lines changed: 62 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ def baseTests(String image) {
44
Map base_tests = [failFast: false];
55

66
base_tests['Unit Tests CTest'] = {
7-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
7+
withDockerContainer(args: '-u root', image: image) {
88
stage('Setup CTest') {
99
echo 'Nothing to be done.';
1010
}
@@ -27,7 +27,7 @@ def baseTests(String image) {
2727

2828
base_tests['Unit Tests Tcl'] = {
2929
node {
30-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
30+
withDockerContainer(args: '-u root', image: image) {
3131
stage('Setup Tcl Tests') {
3232
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
3333
checkout scm;
@@ -68,7 +68,7 @@ def baseTests(String image) {
6868
flow_tests.each { current_test ->
6969
base_tests["Flow Test - ${current_test}"] = {
7070
node {
71-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
71+
withDockerContainer(args: '-u root', image: image) {
7272
stage("Setup ${current_test}") {
7373
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
7474
checkout scm;
@@ -104,7 +104,7 @@ def getParallelTests(String image) {
104104

105105
'Build without GUI': {
106106
node {
107-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
107+
withDockerContainer(args: '-u root', image: image) {
108108
stage('Setup no-GUI Build') {
109109
echo "Build without GUI";
110110
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
@@ -121,7 +121,7 @@ def getParallelTests(String image) {
121121

122122
'Build without Test': {
123123
node {
124-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
124+
withDockerContainer(args: '-u root', image: image) {
125125
stage('Setup no-test Build') {
126126
echo "Build without Tests";
127127
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
@@ -148,7 +148,7 @@ def getParallelTests(String image) {
148148

149149
'Unit Tests Ninja': {
150150
node {
151-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
151+
withDockerContainer(args: '-u root', image: image) {
152152
stage('Setup Ninja Tests') {
153153
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
154154
checkout scm;
@@ -174,7 +174,7 @@ def getParallelTests(String image) {
174174

175175
'Compile with C++20': {
176176
node {
177-
docker.image(image).inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
177+
withDockerContainer(args: '-u root', image: image) {
178178
stage('Setup C++20 Compile') {
179179
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
180180
checkout scm;
@@ -188,6 +188,41 @@ def getParallelTests(String image) {
188188

189189
];
190190

191+
deb_os = [
192+
[name: 'Ubuntu 20.04' , image: 'openroad/ubuntu20.04-dev'],
193+
[name: 'Ubuntu 22.04' , image: 'openroad/ubuntu22.04-dev'],
194+
[name: 'Debian 11' , image: 'openroad/debian11-dev']
195+
];
196+
197+
deb_os.each { os ->
198+
ret["Build .deb - ${os.name}"] = {
199+
node {
200+
stage('Setup and Build') {
201+
sh label: 'Pull latest image', script: "docker pull ${os.image}:latest";
202+
withDockerContainer(args: '-u root', image: "${os.image}") {
203+
sh label: 'Configure git', script: "git config --system --add safe.directory '*'";
204+
checkout([
205+
$class: 'GitSCM',
206+
branches: [[name: scm.branches[0].name]],
207+
doGenerateSubmoduleConfigurations: false,
208+
extensions: [
209+
[$class: 'CloneOption', noTags: false],
210+
[$class: 'SubmoduleOption', recursiveSubmodules: true]
211+
],
212+
submoduleCfg: [],
213+
userRemoteConfigs: scm.userRemoteConfigs
214+
]);
215+
def version = sh(script: 'git describe | sed s,^v,,', returnStdout: true).trim();
216+
sh label: 'Create Changelog', script: "./debian/create-changelog.sh ${version}";
217+
sh label: 'Run debuild', script: 'debuild --preserve-env --preserve-envvar=PATH -B -j$(nproc)';
218+
sh label: 'Move generated files', script: "./debian/move-artifacts.sh ${version}";
219+
archiveArtifacts artifacts: '*' + "${version}" + '*';
220+
}
221+
}
222+
}
223+
}
224+
}
225+
191226
return ret;
192227
}
193228

@@ -196,7 +231,26 @@ node {
196231
checkout scm;
197232
}
198233
def DOCKER_IMAGE;
199-
stage('Build and Push Docker Image') {
234+
stage('Build, Test and Push Docker Image') {
235+
Map build_docker_images = [failFast: false];
236+
test_os = [
237+
[name: 'Ubuntu 20.04', base: 'ubuntu:20.04', image: 'ubuntu20.04'],
238+
[name: 'Ubuntu 22.04', base: 'ubuntu:22.04', image: 'ubuntu22.04'],
239+
[name: 'Ubuntu 24.04', base: 'ubuntu:24.04', image: 'ubuntu24.04'],
240+
[name: 'RockLinux 9', base: 'rockylinux:9', image: 'rocklinux9'],
241+
[name: 'Debian 11', base: 'debian:11', image: 'debian11']
242+
];
243+
test_os.each { os ->
244+
build_docker_images["Test Installer - ${os.name}"] = {
245+
node {
246+
checkout scm;
247+
sh label: 'Build Docker image', script: "./etc/DockerHelper.sh create -target=builder -os=${os.image}";
248+
sh label: 'Test Docker image', script: "./etc/DockerHelper.sh test -target=builder -os=${os.image}";
249+
dockerPush("${os.image}", 'openroad');
250+
}
251+
}
252+
}
253+
parallel(build_docker_images);
200254
DOCKER_IMAGE = dockerPush('ubuntu22.04', 'openroad');
201255
echo "Docker image is ${DOCKER_IMAGE}";
202256
}

debian/move-artifacts.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
3+
if [[ $# -ne 1 ]]; then
4+
echo "Error: This script requires exactly one argument."
5+
echo "usage: $0 <VERSION>"
6+
exit 1
7+
fi
8+
9+
for file in ../*${1}*; do
10+
base_name=$(basename "$file")
11+
name="${base_name%.*}"
12+
ext="${base_name##*.}"
13+
mv "$file" "${name}-${os_name}.${ext}"
14+
done

0 commit comments

Comments
 (0)