osmith has uploaded this change for review.
debian-bookworm-obs-asan: new container
Copy debian-bookworm-obs-latest and configure it to use the
osmocom:nightly:asan repository. Adjust jenkins-cmmon.sh for running the
testusite against the asan repository.
Related: OS#5301
Change-Id: I4219d927d4617232584d5401debd0be04df67ea0
---
A debian-bookworm-obs-asan/Dockerfile
A debian-bookworm-obs-asan/Makefile
M jenkins-common.sh
3 files changed, 64 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/78/37178/1
diff --git a/debian-bookworm-obs-asan/Dockerfile b/debian-bookworm-obs-asan/Dockerfile
new file mode 100644
index 0000000..4922723
--- /dev/null
+++ b/debian-bookworm-obs-asan/Dockerfile
@@ -0,0 +1,39 @@
+ARG REGISTRY=docker.io
+ARG UPSTREAM_DISTRO=debian:bookworm
+FROM ${REGISTRY}/${UPSTREAM_DISTRO}
+
+# Arguments used after FROM must be specified again
+ARG OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org"
+ARG OSMOCOM_REPO_PATH="packages/osmocom:"
+ARG OSMOCOM_REPO="${OSMOCOM_REPO_MIRROR}/${OSMOCOM_REPO_PATH}/nightly:/asan/Debian_12/"
+ARG UID
+
+# Copy from common dir
+COPY .common/respawn.sh /usr/local/bin/respawn.sh
+COPY .common/Release.key /usr/share/keyrings/osmocom-nightly-asan.asc
+
+# Configure build user, disable installing man pages
+# * /usr/local: osmo-python-tests's contrib/jenkins.sh writes there
+# * man pages: without them we avoid waiting for "generating manpages"
+RUN set -x && \
+ useradd --uid=${UID} build && \
+ mkdir /build && \
+ chown -R build:build /build /usr/local && \
+ \
+ echo "path-exclude=/usr/share/man/*" \
+ > /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
+ rm -rf /usr/share/man/
+
+# Configure Osmocom nightly asan repository, add telnet for debugging
+RUN set -x && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ telnet \
+ && \
+ apt-get clean && \
+ echo "deb [signed-by=/usr/share/keyrings/osmocom-nightly-asan.asc] $OSMOCOM_REPO ./" \
+ > /etc/apt/sources.list.d/osmocom-nightly-asan.list
+
+# Invalidate cache once the repository is updated
+ADD $OSMOCOM_REPO/Release /tmp/Release
diff --git a/debian-bookworm-obs-asan/Makefile b/debian-bookworm-obs-asan/Makefile
new file mode 100644
index 0000000..cdac90c
--- /dev/null
+++ b/debian-bookworm-obs-asan/Makefile
@@ -0,0 +1,3 @@
+UPSTREAM_DISTRO=debian:bookworm
+DISTRO=debian-bookworm
+include ../make/Makefile
diff --git a/jenkins-common.sh b/jenkins-common.sh
index eae0473..1caa5dd 100644
--- a/jenkins-common.sh
+++ b/jenkins-common.sh
@@ -21,6 +21,7 @@
osmo-*-centos7) echo "centos7-build" ;;
osmo-*-centos8) echo "centos8-build" ;;
osmo-*-latest) echo "debian-$DEBIAN_DEFAULT-obs-latest" ;;
+ osmo-*-asan) echo "debian-$DEBIAN_DEFAULT-obs-asan" ;;
osmo_dia2gsup-*) echo "debian-$DEBIAN_DEFAULT-erlang" ;;
osmo-epdg-*) echo "debian-$DEBIAN_DEFAULT-erlang" ;;
osmo-*) echo "debian-$DEBIAN_DEFAULT-build" ;;
@@ -78,6 +79,13 @@
# e.g. centos8-obs-2021q1 -> centos8-obs-latest
echo "$1" | sed 's/20[0-9][0-9]q.*$/latest/'
;;
+ osmo-*-asan)
+ # Build Osmocom programs from the asan repository with the
+ # "-latest" docker containers (osmo-mgw-latest/Dockerfile etc.)
+ # so they are completely built from the OBS packages instead of
+ # building some of it from git (as in *-master/Dockerfile).
+ echo "$1" | sed 's/-asan/-latest/'
+ ;;
*)
echo "$1"
;;
To view, visit change 37178. To unsubscribe, or for help writing mail filters, visit settings.