<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>