<p>osmith <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/docker-playground/+/18553">View Change</a></p><div style="white-space:pre-wrap">Approvals:
laforge: Looks good to me, approved
fixeria: Looks good to me, but someone else must approve
osmith: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">jenkins-common.sh: support osmo-*-centos8 images<br><br>Make it possible to call the ttcn3-*/jenkins.sh scripts with:<br> IMAGE_SUFFIX="master-centos8"<br><br>The existing docker_images_require lines of these jenkins.sh scripts<br>will then call docker_images_require with arguments like<br>"osmo-mgw-master-centos8". For example, from ttcn3-mgw-test/jenkins.sh:<br><br> docker_images_require \<br> "osmo-mgw-$IMAGE_SUFFIX" \<br> "ttcn3-mgw-test"<br><br>Let docker_images_require build the image from<br>osmo-mgw-master/Dockerfile (-centos8 is cut off from the dirname) and<br>with DISTRO=centos8 as argument.<br><br>Collisions with the debian-stretch images are avoided by setting IMAGE<br>to the full image name (e.g. osmo-mgw-master-centos8).<br><br>Related: OS#4564<br>Change-Id: I598a262fe1a7ed4dd89e13c53e4ded103c6e3b91<br>---<br>M jenkins-common.sh<br>1 file changed, 34 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/jenkins-common.sh b/jenkins-common.sh</span><br><span>index ea03d52..a29720c 100644</span><br><span>--- a/jenkins-common.sh</span><br><span>+++ b/jenkins-common.sh</span><br><span>@@ -4,16 +4,41 @@</span><br><span> </span><br><span> docker_depends() {</span><br><span> case "$1" in</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo-*-centos8) echo "centos8-build" ;;</span><br><span> osmo-*) echo "debian-stretch-build" ;;</span><br><span> ttcn3-*) echo "debian-stretch-titan" ;;</span><br><span> esac</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+docker_distro_from_image_name() {</span><br><span style="color: hsl(120, 100%, 40%);">+ case "$1" in</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo-*-centos8) echo "centos8"; ;;</span><br><span style="color: hsl(120, 100%, 40%);">+ *) echo "debian-stretch" ;;</span><br><span style="color: hsl(120, 100%, 40%);">+ esac</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+docker_dir_from_image_name() {</span><br><span style="color: hsl(120, 100%, 40%);">+ case "$1" in</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo-*-centos8) echo "$1" | sed 's/\-centos8$//' ;;</span><br><span style="color: hsl(120, 100%, 40%);">+ *) echo "$1" ;;</span><br><span style="color: hsl(120, 100%, 40%);">+ esac</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%);">+# Make sure required images are available and build them if necessary.</span><br><span style="color: hsl(120, 100%, 40%);">+# $*: image names (e.g. "debian-stretch-build", "osmo-mgw-master", "osmo-mgw-master-centos8")</span><br><span style="color: hsl(120, 100%, 40%);">+# The images are automatically built from the Dockerfile of the subdir of the same name. If there is a</span><br><span style="color: hsl(120, 100%, 40%);">+# distribution name at the end of the image name (e.g. osmo-mgw-master-centos8), it gets removed from the subdir</span><br><span style="color: hsl(120, 100%, 40%);">+# where the Dockerfile is taken from (e.g. osmo-mgw-master/Dockerfile) and DISTRO is passed accordingly</span><br><span style="color: hsl(120, 100%, 40%);">+# (e.g. DISTRO=centos8). This allows one Dockerfile for multiple distributions, without duplicating configs for</span><br><span style="color: hsl(120, 100%, 40%);">+# each distribution. Dependencies listed in docker_depends() are built automatically too.</span><br><span> docker_images_require() {</span><br><span> local i</span><br><span> local from_line</span><br><span> local pull_arg</span><br><span style="color: hsl(120, 100%, 40%);">+ local distro_arg</span><br><span> local depends</span><br><span style="color: hsl(120, 100%, 40%);">+ local dir</span><br><span> </span><br><span> for i in $@; do</span><br><span> # Build dependencies first</span><br><span>@@ -24,15 +49,22 @@</span><br><span> </span><br><span> # Trigger image build (cache will be used when up-to-date)</span><br><span> if [ -z "$NO_DOCKER_IMAGE_BUILD" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ distro_arg="$(docker_distro_from_image_name "$i")"</span><br><span style="color: hsl(120, 100%, 40%);">+ dir="$(docker_dir_from_image_name "$i")"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # Pull upstream base images</span><br><span> pull_arg="--pull"</span><br><span style="color: hsl(0, 100%, 40%);">- from_line="$(grep '^FROM' ../$i/Dockerfile)"</span><br><span style="color: hsl(120, 100%, 40%);">+ from_line="$(grep '^FROM' ../$dir/Dockerfile)"</span><br><span> if echo "$from_line" | grep -q '$USER'; then</span><br><span> pull_arg=""</span><br><span> fi</span><br><span> </span><br><span> echo "Building image: $i (export NO_DOCKER_IMAGE_BUILD=1 to prevent this)"</span><br><span style="color: hsl(0, 100%, 40%);">- PULL="$pull_arg" make -C "../$i" || exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+ make -C "../$dir" \</span><br><span style="color: hsl(120, 100%, 40%);">+ PULL="$pull_arg" \</span><br><span style="color: hsl(120, 100%, 40%);">+ DISTRO="$distro_arg" \</span><br><span style="color: hsl(120, 100%, 40%);">+ IMAGE="$REPO_USER/$i" \</span><br><span style="color: hsl(120, 100%, 40%);">+ || exit 1</span><br><span> fi</span><br><span> </span><br><span> # Detect missing images (build skipped)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/docker-playground/+/18553">change 18553</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/c/docker-playground/+/18553"/><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-Change-Id: I598a262fe1a7ed4dd89e13c53e4ded103c6e3b91 </div>
<div style="display:none"> Gerrit-Change-Number: 18553 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>