<p>osmith <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10862">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  osmith: Verified
  Neels Hofmeyr: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">debian-repo-install-test: new binary package test<br><br>Installs most packages from the Osmocom Debian repository into a plain<br>debian:stretch container and call the osmo-* binaries with --version<br>(or -h).<br><br>The list of packages is automatically generated with aptitude, so the<br>job does not need to be changed for every new package. There's also a<br>new blacklist.txt file with a list of packages, that will not be<br>installed in this test. Currently, this is filled with all packages<br>built from the legacy openbsc.git project (some of them are<br>conflicting with newer repositories) and the soapysdr packages (see<br>OS#3541).<br><br>The feed ("latest", "nightly") can be specified with the FEED<br>environment variable, it gets read by jenkins.sh (defaults to nightly).<br><br>Change-Id: I0f0a8b4f0ccd706cd1af98fe25accd6fd410e007<br>Relates: OS#3176<br>---<br>A debian-repo-install-test/jenkins.sh<br>A debian-repo-install-test/testdata/Release.key<br>A debian-repo-install-test/testdata/blacklist.txt<br>A debian-repo-install-test/testdata/repo-install-test.sh<br>4 files changed, 148 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/debian-repo-install-test/jenkins.sh b/debian-repo-install-test/jenkins.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..9dd4565</span><br><span>--- /dev/null</span><br><span>+++ b/debian-repo-install-test/jenkins.sh</span><br><span>@@ -0,0 +1,18 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+. ../jenkins-common.sh</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Configuration</span><br><span style="color: hsl(120, 100%, 40%);">+[ -z "$FEED" ] && FEED="nightly"</span><br><span style="color: hsl(120, 100%, 40%);">+interactive="false"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Run the container</span><br><span style="color: hsl(120, 100%, 40%);">+extra_args=""</span><br><span style="color: hsl(120, 100%, 40%);">+[ "$interactive" = "true" ] && extra_args="-it"</span><br><span style="color: hsl(120, 100%, 40%);">+docker run        --rm \</span><br><span style="color: hsl(120, 100%, 40%);">+                -v "$PWD/testdata:/testdata:ro" \</span><br><span style="color: hsl(120, 100%, 40%);">+           -v "$VOL_BASE_DIR:/data" \</span><br><span style="color: hsl(120, 100%, 40%);">+          --name "${BUILD_TAG}" \</span><br><span style="color: hsl(120, 100%, 40%);">+             -e FEED="$FEED" \</span><br><span style="color: hsl(120, 100%, 40%);">+           $extra_args \</span><br><span style="color: hsl(120, 100%, 40%);">+         debian:stretch \</span><br><span style="color: hsl(120, 100%, 40%);">+              "/testdata/repo-install-test.sh"</span><br><span>diff --git a/debian-repo-install-test/testdata/Release.key b/debian-repo-install-test/testdata/Release.key</span><br><span>new file mode 100644</span><br><span>index 0000000..e656238</span><br><span>--- /dev/null</span><br><span>+++ b/debian-repo-install-test/testdata/Release.key</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PGP PUBLIC KEY BLOCK-----</span><br><span style="color: hsl(120, 100%, 40%);">+Version: GnuPG v1.4.5 (GNU/Linux)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc</span><br><span style="color: hsl(120, 100%, 40%);">+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl</span><br><span style="color: hsl(120, 100%, 40%);">+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4</span><br><span style="color: hsl(120, 100%, 40%);">+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee</span><br><span style="color: hsl(120, 100%, 40%);">+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y</span><br><span style="color: hsl(120, 100%, 40%);">+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy</span><br><span style="color: hsl(120, 100%, 40%);">+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc</span><br><span style="color: hsl(120, 100%, 40%);">+aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI</span><br><span style="color: hsl(120, 100%, 40%);">+ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw</span><br><span style="color: hsl(120, 100%, 40%);">+8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI</span><br><span style="color: hsl(120, 100%, 40%);">+L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb</span><br><span style="color: hsl(120, 100%, 40%);">+/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I</span><br><span style="color: hsl(120, 100%, 40%);">+ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi</span><br><span style="color: hsl(120, 100%, 40%);">+8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v</span><br><span style="color: hsl(120, 100%, 40%);">+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=</span><br><span style="color: hsl(120, 100%, 40%);">+=Gvly</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PGP PUBLIC KEY BLOCK-----</span><br><span>diff --git a/debian-repo-install-test/testdata/blacklist.txt b/debian-repo-install-test/testdata/blacklist.txt</span><br><span>new file mode 100644</span><br><span>index 0000000..4d3f7ed</span><br><span>--- /dev/null</span><br><span>+++ b/debian-repo-install-test/testdata/blacklist.txt</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# These packages will not get explicitly installed in this test.</span><br><span style="color: hsl(120, 100%, 40%);">+# Package lines must have nothing but the package (no comment,</span><br><span style="color: hsl(120, 100%, 40%);">+# no additional space etc).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# OpenBSC</span><br><span style="color: hsl(120, 100%, 40%);">+# This is legacy, we aren't really interested in testing openbsc.git</span><br><span style="color: hsl(120, 100%, 40%);">+# derived packages. Packages are found in openbsc/debian/control.</span><br><span style="color: hsl(120, 100%, 40%);">+openbsc-dev</span><br><span style="color: hsl(120, 100%, 40%);">+osmo-bsc-mgcp</span><br><span style="color: hsl(120, 100%, 40%);">+osmo-bsc-mgcp-dbg</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-bs11-utils</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-bs11-utils-dbg</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-bsc-nat</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-bsc-nat-dbg</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-bsc-sccplite</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-bsc-sccplite-dbg</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-ipaccess-utils</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-ipaccess-utils-dbg</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-nitb</span><br><span style="color: hsl(120, 100%, 40%);">+osmocom-nitb-dbg</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# SoapySDR is not used anymore (see OS#3542)</span><br><span style="color: hsl(120, 100%, 40%);">+soapysdr-module-lms7</span><br><span style="color: hsl(120, 100%, 40%);">+soapysdr0.6-module-lms7</span><br><span style="color: hsl(120, 100%, 40%);">+soapysdr0.6-module-lms7-dbgsym</span><br><span>diff --git a/debian-repo-install-test/testdata/repo-install-test.sh b/debian-repo-install-test/testdata/repo-install-test.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..ea1c5fb</span><br><span>--- /dev/null</span><br><span>+++ b/debian-repo-install-test/testdata/repo-install-test.sh</span><br><span>@@ -0,0 +1,85 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh -ex</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+HTTP="http://download.opensuse.org/repositories/network:/osmocom:/$FEED/Debian_9.0/"</span><br><span style="color: hsl(120, 100%, 40%);">+OBS="obs://build.opensuse.org/network:osmocom:$FEED/Debian_9.0"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+check_env() {</span><br><span style="color: hsl(120, 100%, 40%);">+   if [ -n "$FEED" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+             echo "Checking feed: $FEED"</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span style="color: hsl(120, 100%, 40%);">+          echo "ERROR: missing environment variable \$FEED!"</span><br><span style="color: hsl(120, 100%, 40%);">+          exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+        fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+install_depends() {</span><br><span style="color: hsl(120, 100%, 40%);">+  echo "Installing dependencies"</span><br><span style="color: hsl(120, 100%, 40%);">+      apt-get update</span><br><span style="color: hsl(120, 100%, 40%);">+        apt-get install -y gnupg aptitude</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+configure_osmocom_repo() {</span><br><span style="color: hsl(120, 100%, 40%);">+    echo "Configuring Osmocom repository"</span><br><span style="color: hsl(120, 100%, 40%);">+       apt-key add /testdata/Release.key</span><br><span style="color: hsl(120, 100%, 40%);">+     echo "deb $HTTP ./" \</span><br><span style="color: hsl(120, 100%, 40%);">+               > /etc/apt/sources.list.d/osmocom-latest.list</span><br><span style="color: hsl(120, 100%, 40%);">+      apt-get update</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+install_repo_packages() {</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "Installing all repository packages"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ # Get a list of all packages from the repository. Reference:</span><br><span style="color: hsl(120, 100%, 40%);">+  # https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html</span><br><span style="color: hsl(120, 100%, 40%);">+      aptitude search -F%p \</span><br><span style="color: hsl(120, 100%, 40%);">+                "?origin($OBS) ?architecture(native)" | sort \</span><br><span style="color: hsl(120, 100%, 40%);">+              > /data/osmocom_packages_all.txt</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ # Remove comments from blacklist.txt (and sort it)</span><br><span style="color: hsl(120, 100%, 40%);">+    grep -v "^#" /testdata/blacklist.txt | sort -u > /data/blacklist.txt</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   # Install all repo packages which are not on the blacklist</span><br><span style="color: hsl(120, 100%, 40%);">+    comm -23 /data/osmocom_packages_all.txt \</span><br><span style="color: hsl(120, 100%, 40%);">+             /data/blacklist.txt > /data/osmocom_packages.txt</span><br><span style="color: hsl(120, 100%, 40%);">+   apt install -y $(cat /data/osmocom_packages.txt)</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test_binaries() {</span><br><span style="color: hsl(120, 100%, 40%);">+      # Make sure the binaries are not broken (run -h or --version)</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo-bsc --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-bts-trx --version</span><br><span style="color: hsl(120, 100%, 40%);">+        osmo-bts-virtual --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-gbproxy --version</span><br><span style="color: hsl(120, 100%, 40%);">+        osmo-ggsn --version</span><br><span style="color: hsl(120, 100%, 40%);">+   osmo-gtphub -h</span><br><span style="color: hsl(120, 100%, 40%);">+        osmo-hlr --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-hlr-db-tool --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-hnbgw --version</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo-mgw --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-msc --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-pcu --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-sgsn --version</span><br><span style="color: hsl(120, 100%, 40%);">+   osmo-sip-connector -h</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo-stp --version</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-trx-uhd -h</span><br><span style="color: hsl(120, 100%, 40%);">+       osmo-trx-usrp1 -h</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+finish() {</span><br><span style="color: hsl(120, 100%, 40%);">+    echo "Test finished successfully!"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # When docker-run is called with "-it", then stdin and a tty are available.</span><br><span style="color: hsl(120, 100%, 40%);">+ # The container will still exit when the entrypoint script (this file) is</span><br><span style="color: hsl(120, 100%, 40%);">+     # through, so in order to be able to type in commands, we execute a bash shell.</span><br><span style="color: hsl(120, 100%, 40%);">+       if [ -t 0 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+             echo "Dropping to interactive shell"</span><br><span style="color: hsl(120, 100%, 40%);">+                bash</span><br><span style="color: hsl(120, 100%, 40%);">+  fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+check_env</span><br><span style="color: hsl(120, 100%, 40%);">+install_depends</span><br><span style="color: hsl(120, 100%, 40%);">+configure_osmocom_repo</span><br><span style="color: hsl(120, 100%, 40%);">+install_repo_packages</span><br><span style="color: hsl(120, 100%, 40%);">+test_binaries</span><br><span style="color: hsl(120, 100%, 40%);">+finish</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10862">change 10862</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10862"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: docker-playground </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I0f0a8b4f0ccd706cd1af98fe25accd6fd410e007 </div>
<div style="display:none"> Gerrit-Change-Number: 10862 </div>
<div style="display:none"> Gerrit-PatchSet: 7 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: Pau Espin Pedrol <pespin@sysmocom.de> </div>