aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortcwg-buildslave <tcwg-buildslave@linaro.org>2024-04-27 00:40:13 +0000
committertcwg-buildslave <tcwg-buildslave@linaro.org>2024-04-27 00:40:13 +0000
commit16233381fd2f65ce0303f710fe95d03a676d87ae (patch)
treef3f94b8e207f581ee772cc93d8ad42aa01efb014
parent759d4b161a62d4873ebf120ab340cedff47b9bf9 (diff)
parentab74db22d9a363e96c2f5127dd93135bb7284b2d (diff)
Merge "Merge commit '603b05fc10405cc714af1a2e6a69837fae1c34b8' into tcwg-tested" into tcwg-testedtcwg-tested
-rw-r--r--focal-amd64-tcwg-base/Dockerfile5
-rw-r--r--focal-amd64-tcwg-base/focal-amd64-tcwg-build/Dockerfile4
-rw-r--r--focal-arm64-tcwg-base/Dockerfile5
-rw-r--r--focal-arm64-tcwg-base/focal-arm64-tcwg-build/Dockerfile4
-rw-r--r--focal-armhf-tcwg-base/Dockerfile5
-rw-r--r--focal-armhf-tcwg-base/focal-armhf-tcwg-build/Dockerfile4
-rw-r--r--jammy-amd64-tcwg-base/Dockerfile5
-rw-r--r--jammy-amd64-tcwg-base/jammy-amd64-tcwg-build/Dockerfile4
-rw-r--r--jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/Dockerfile12
l---------jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/build.sh1
-rw-r--r--jammy-arm64-tcwg-base/Dockerfile5
-rw-r--r--jammy-arm64-tcwg-base/jammy-arm64-tcwg-build/Dockerfile4
-rw-r--r--jammy-armhf-tcwg-base/Dockerfile5
-rw-r--r--jammy-armhf-tcwg-base/jammy-armhf-tcwg-build/Dockerfile4
-rw-r--r--tcwg-base/Dockerfile.in9
-rw-r--r--tcwg-base/tcwg-build/Dockerfile.in7
-rwxr-xr-xtcwg-base/tcwg-host/run.sh15
-rw-r--r--tcwg-base/tcwg-lnt/Dockerfile.in14
-rwxr-xr-xtcwg-base/tcwg-lnt/build.sh30
-rwxr-xr-xtcwg-base/tcwg-lnt/lnt.sh6
-rwxr-xr-xtcwg-base/tcwg-lnt/run.sh20
-rwxr-xr-xtcwg-base/tcwg-lnt/start.sh54
22 files changed, 177 insertions, 45 deletions
diff --git a/focal-amd64-tcwg-base/Dockerfile b/focal-amd64-tcwg-base/Dockerfile
index 8f3e23d0..6c7ed6ff 100644
--- a/focal-amd64-tcwg-base/Dockerfile
+++ b/focal-amd64-tcwg-base/Dockerfile
@@ -322,7 +322,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
-# This is a dummy comment to trigger a base image rebuild.
-# checksum: a3189ffcf2a879f188230ca64162be43
+# checksum: d2851e5a313f54da5f586d28f7ccf63f
diff --git a/focal-amd64-tcwg-base/focal-amd64-tcwg-build/Dockerfile b/focal-amd64-tcwg-base/focal-amd64-tcwg-build/Dockerfile
index a06fbea8..1d8c5d29 100644
--- a/focal-amd64-tcwg-base/focal-amd64-tcwg-build/Dockerfile
+++ b/focal-amd64-tcwg-base/focal-amd64-tcwg-build/Dockerfile
@@ -39,4 +39,6 @@ RUN \
/var/tmp/* \
# This will override llvm-objdump installed by tcwg-base's llvm package.
&& ln -s `which llvm-objdump-11` /usr/local/bin/llvm-objdump
-# checksum: 4a6718d410939e630d9cfe3a1434523a
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
+# checksum: 1312962bdcfaadb69391055f90a29a76
diff --git a/focal-arm64-tcwg-base/Dockerfile b/focal-arm64-tcwg-base/Dockerfile
index 76400f48..20188955 100644
--- a/focal-arm64-tcwg-base/Dockerfile
+++ b/focal-arm64-tcwg-base/Dockerfile
@@ -303,7 +303,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
-# This is a dummy comment to trigger a base image rebuild.
-# checksum: c38eece402c64fa2c214420831b4775d
+# checksum: a0d77498fc6f3ac97d72701883e1bc30
diff --git a/focal-arm64-tcwg-base/focal-arm64-tcwg-build/Dockerfile b/focal-arm64-tcwg-base/focal-arm64-tcwg-build/Dockerfile
index 71927684..f8a4976b 100644
--- a/focal-arm64-tcwg-base/focal-arm64-tcwg-build/Dockerfile
+++ b/focal-arm64-tcwg-base/focal-arm64-tcwg-build/Dockerfile
@@ -29,4 +29,6 @@ RUN \
/var/tmp/* \
# This will override llvm-objdump installed by tcwg-base's llvm package.
&& ln -s `which llvm-objdump-11` /usr/local/bin/llvm-objdump
-# checksum: f4581c2c071379c5b031871727887448
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
+# checksum: f711e86a7fd1d6c83b0c985c3e876905
diff --git a/focal-armhf-tcwg-base/Dockerfile b/focal-armhf-tcwg-base/Dockerfile
index 7de45301..7abd0b8f 100644
--- a/focal-armhf-tcwg-base/Dockerfile
+++ b/focal-armhf-tcwg-base/Dockerfile
@@ -309,7 +309,4 @@ RUN echo $'if [ "$(uname -m)" == "aarch64" ] || [ "$(uname -m)" == "x86_64" ]; t
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-EXPOSE 22
-CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# This is a dummy comment to trigger a base image rebuild.
-# checksum: 33dcd3b146cf6b5229a189e1c404e8ee
+# checksum: 128194e695aa0f51624712cfcc76a342
diff --git a/focal-armhf-tcwg-base/focal-armhf-tcwg-build/Dockerfile b/focal-armhf-tcwg-base/focal-armhf-tcwg-build/Dockerfile
index b4894d67..37ef2da0 100644
--- a/focal-armhf-tcwg-base/focal-armhf-tcwg-build/Dockerfile
+++ b/focal-armhf-tcwg-base/focal-armhf-tcwg-build/Dockerfile
@@ -29,4 +29,6 @@ RUN \
/var/tmp/* \
# This will override llvm-objdump installed by tcwg-base's llvm package.
&& ln -s `which llvm-objdump-11` /usr/local/bin/llvm-objdump
-# checksum: a2e2ec304d81da94f161c54c20ea298d
+EXPOSE 22
+CMD ["linux32", "/usr/sbin/sshd", "-D"]
+# checksum: 7d1696987abf9a37566db87cb37176fa
diff --git a/jammy-amd64-tcwg-base/Dockerfile b/jammy-amd64-tcwg-base/Dockerfile
index b4401bc7..543f58c7 100644
--- a/jammy-amd64-tcwg-base/Dockerfile
+++ b/jammy-amd64-tcwg-base/Dockerfile
@@ -324,7 +324,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
-# This is a dummy comment to trigger a base image rebuild.
-# checksum: 6abe91c402501929753104a36a53da66
+# checksum: 1e967738b035da8585990266907529b8
diff --git a/jammy-amd64-tcwg-base/jammy-amd64-tcwg-build/Dockerfile b/jammy-amd64-tcwg-base/jammy-amd64-tcwg-build/Dockerfile
index 020908f6..7a5c7c40 100644
--- a/jammy-amd64-tcwg-base/jammy-amd64-tcwg-build/Dockerfile
+++ b/jammy-amd64-tcwg-base/jammy-amd64-tcwg-build/Dockerfile
@@ -26,4 +26,6 @@ RUN \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/*
-# checksum: 1322aafd37c1e25c38b6b627e3c475ff
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
+# checksum: a7ff2a9e9edc3cc1c053394515637d3b
diff --git a/jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/Dockerfile b/jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/Dockerfile
new file mode 100644
index 00000000..1d4583cc
--- /dev/null
+++ b/jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/Dockerfile
@@ -0,0 +1,12 @@
+# Auto generated by ./tcwg-base/generate-dockerfiles.sh from tcwg-base/tcwg-lnt/Dockerfile.in. Do not edit.
+FROM linaro/ci-amd64-tcwg-base-ubuntu:jammy
+RUN new-user.sh --user tcwg-buildslave \
+ && sudo -i -u tcwg-buildslave mkdir bin
+COPY lnt.sh /home/tcwg-buildslave/bin
+COPY run.sh start.sh /
+ENV TINI_VERSION v0.18.0
+ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-amd64 /sbin/tini
+RUN chmod +x /sbin/tini
+ENTRYPOINT ["/sbin/tini", "--", "/run.sh"]
+CMD ["start.sh"]
+# checksum: 502d7b6a7d7304e72a080e9d86554afe
diff --git a/jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/build.sh b/jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/build.sh
new file mode 120000
index 00000000..7fc24e9b
--- /dev/null
+++ b/jammy-amd64-tcwg-base/jammy-amd64-tcwg-lnt/build.sh
@@ -0,0 +1 @@
+../../tcwg-base/tcwg-lnt/build.sh \ No newline at end of file
diff --git a/jammy-arm64-tcwg-base/Dockerfile b/jammy-arm64-tcwg-base/Dockerfile
index 4c939f20..7dccf0d8 100644
--- a/jammy-arm64-tcwg-base/Dockerfile
+++ b/jammy-arm64-tcwg-base/Dockerfile
@@ -305,7 +305,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
-# This is a dummy comment to trigger a base image rebuild.
-# checksum: ff825fc7d2c78670adfaff39d0d05a90
+# checksum: 99aa5e7c6581f1305ad1111f5cb24c5c
diff --git a/jammy-arm64-tcwg-base/jammy-arm64-tcwg-build/Dockerfile b/jammy-arm64-tcwg-base/jammy-arm64-tcwg-build/Dockerfile
index a377af8e..db621010 100644
--- a/jammy-arm64-tcwg-base/jammy-arm64-tcwg-build/Dockerfile
+++ b/jammy-arm64-tcwg-base/jammy-arm64-tcwg-build/Dockerfile
@@ -16,4 +16,6 @@ RUN while read line; do \
# - TK1s have small disk, so try to get by with 10G.
RUN sudo -i -u tcwg-buildslave mkdir -p /home/tcwg-buildslave/.ccache \
&& sudo -i -u tcwg-buildslave ccache -M 50G
-# checksum: 848b185837dfcd3314a2efa3a51b4b5f
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
+# checksum: 150d78a7ace61813849e4d01df43184d
diff --git a/jammy-armhf-tcwg-base/Dockerfile b/jammy-armhf-tcwg-base/Dockerfile
index 78e356d5..d495a9b0 100644
--- a/jammy-armhf-tcwg-base/Dockerfile
+++ b/jammy-armhf-tcwg-base/Dockerfile
@@ -315,7 +315,4 @@ RUN echo $'if [ "$(uname -m)" == "aarch64" ] || [ "$(uname -m)" == "x86_64" ]; t
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-EXPOSE 22
-CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# This is a dummy comment to trigger a base image rebuild.
-# checksum: c703892b252d152771e3928eb17e2f65
+# checksum: 483fa926c92991c689c0bc71750b0963
diff --git a/jammy-armhf-tcwg-base/jammy-armhf-tcwg-build/Dockerfile b/jammy-armhf-tcwg-base/jammy-armhf-tcwg-build/Dockerfile
index a572a1b2..8376e3fe 100644
--- a/jammy-armhf-tcwg-base/jammy-armhf-tcwg-build/Dockerfile
+++ b/jammy-armhf-tcwg-base/jammy-armhf-tcwg-build/Dockerfile
@@ -16,4 +16,6 @@ RUN while read line; do \
# - TK1s have small disk, so try to get by with 10G.
RUN sudo -i -u tcwg-buildslave mkdir -p /home/tcwg-buildslave/.ccache \
&& sudo -i -u tcwg-buildslave ccache -M 10G
-# checksum: 3db7084b1504bf636c8d96573a9299d1
+EXPOSE 22
+CMD ["linux32", "/usr/sbin/sshd", "-D"]
+# checksum: c60a2dda816198ced45518de323d94eb
diff --git a/tcwg-base/Dockerfile.in b/tcwg-base/Dockerfile.in
index 31b1a18d..116f96f2 100644
--- a/tcwg-base/Dockerfile.in
+++ b/tcwg-base/Dockerfile.in
@@ -417,12 +417,3 @@ RUN echo $'if [ "$(uname -m)" == "aarch64" ] || [ "$(uname -m)" == "x86_64" ]; t
# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
# cleanup host directories used for the scratch mounts.
VOLUME /tmp
-
-EXPOSE 22
-#if ARCH_amd64 || ARCH_arm64
-CMD ["/usr/sbin/sshd", "-D"]
-#else
-CMD ["linux32", "/usr/sbin/sshd", "-D"]
-#endif
-
-# This is a dummy comment to trigger a base image rebuild.
diff --git a/tcwg-base/tcwg-build/Dockerfile.in b/tcwg-base/tcwg-build/Dockerfile.in
index db34a084..af36e90b 100644
--- a/tcwg-base/tcwg-build/Dockerfile.in
+++ b/tcwg-base/tcwg-build/Dockerfile.in
@@ -50,3 +50,10 @@ RUN \
# This will override llvm-objdump installed by tcwg-base's llvm package.
&& ln -s `which llvm-objdump-11` /usr/local/bin/llvm-objdump
#endif
+
+EXPOSE 22
+#if ARCH_amd64 || ARCH_arm64
+CMD ["/usr/sbin/sshd", "-D"]
+#else
+CMD ["linux32", "/usr/sbin/sshd", "-D"]
+#endif
diff --git a/tcwg-base/tcwg-host/run.sh b/tcwg-base/tcwg-host/run.sh
index e3e0fddc..03c1fc4b 100755
--- a/tcwg-base/tcwg-host/run.sh
+++ b/tcwg-base/tcwg-host/run.sh
@@ -134,15 +134,18 @@ esac
case "$node" in
# create a LNT server on tcwg-ex42-01
tcwg-lnt-*)
- jenkins_scripts_dir=/home/$user/$node/lntserver/jenkins-scripts
- sudo -i -u $user rm -rf $jenkins_scripts_dir
+ port=$((8080 + ${node##*-}))
+ jenkins_scripts_dir=$(sudo -i -u $user mktemp -d)
sudo -i -u $user git clone \
https://git.linaro.org/toolchain/jenkins-scripts.git \
$jenkins_scripts_dir
- sudo -i -u $user $jenkins_scripts_dir/tcwg-lnt/create-server.sh $node
- ;;
- *)
- ;;
+ $jenkins_scripts_dir/tcwg-start-container.sh \
+ --container $node-lnt --image linaro/ci-amd64-tcwg-lnt-ubuntu:jammy \
+ --additional_options \
+ "-p $port:80 -v /home/$user/$node:/home/$user/$node" \
+ -- linaro/ci-amd64-tcwg-lnt-ubuntu:jammy $node
+ rm -rf "$jenkins_scripts_dir"
+ ;;
esac
sudo -i -u $user rm -rf /home/$user/jenkins-workdir-$node
diff --git a/tcwg-base/tcwg-lnt/Dockerfile.in b/tcwg-base/tcwg-lnt/Dockerfile.in
new file mode 100644
index 00000000..d94d408d
--- /dev/null
+++ b/tcwg-base/tcwg-lnt/Dockerfile.in
@@ -0,0 +1,14 @@
+FROM linaro/ci-#{ARCH}-tcwg-base-ubuntu:#{DISTRO}
+
+RUN new-user.sh --user tcwg-buildslave \
+ && sudo -i -u tcwg-buildslave mkdir bin
+COPY lnt.sh /home/tcwg-buildslave/bin
+
+COPY run.sh start.sh /
+
+ENV TINI_VERSION v0.18.0
+ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-#{ARCH} /sbin/tini
+RUN chmod +x /sbin/tini
+
+ENTRYPOINT ["/sbin/tini", "--", "/run.sh"]
+CMD ["start.sh"]
diff --git a/tcwg-base/tcwg-lnt/build.sh b/tcwg-base/tcwg-lnt/build.sh
new file mode 100755
index 00000000..83248f8c
--- /dev/null
+++ b/tcwg-base/tcwg-lnt/build.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -e
+
+# Can't run multiple copies of this script
+exec 9<Dockerfile
+flock -x 9
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ rm -rf lnt.sh run.sh start.sh
+}
+
+export LANG=C
+distro=$(basename ${PWD} | cut -f1 -d '-')
+arch=$(basename ${PWD} | cut -f2 -d '-')
+name=$(basename ${PWD} | cut -f3- -d '-')
+image=linaro/ci-${arch}-${name}-ubuntu:${distro}
+top=$(git rev-parse --show-toplevel)
+
+cp $top/tcwg-base/tcwg-lnt/lnt.sh \
+ $top/tcwg-base/tcwg-lnt/run.sh \
+ $top/tcwg-base/tcwg-lnt/start.sh ./
+
+(cd ..; ./build.sh)
+"$top"/tcwg-base/validate-checksum.sh Dockerfile
+docker build --tag=$image .
+echo $image > .docker-tag
diff --git a/tcwg-base/tcwg-lnt/lnt.sh b/tcwg-base/tcwg-lnt/lnt.sh
new file mode 100755
index 00000000..e48c9181
--- /dev/null
+++ b/tcwg-base/tcwg-lnt/lnt.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+set -euf -o pipefail
+
+. @LNTSERVER@/sandbox/bin/activate
+exec lnt "$@"
diff --git a/tcwg-base/tcwg-lnt/run.sh b/tcwg-base/tcwg-lnt/run.sh
new file mode 100755
index 00000000..d703c62f
--- /dev/null
+++ b/tcwg-base/tcwg-lnt/run.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+set -e
+
+if [ x"$1" = x"start.sh" ]; then
+ cat /start.sh
+ exit 0
+fi
+
+config="$1"
+
+user=tcwg-buildslave
+scripts=/home/$user/jenkins-scripts
+
+sudo -i -u $user sed -i -e "s#@LNTSERVER@#/home/$user/$config/lntserver#" \
+ bin/lnt.sh
+sudo -i -u $user rm -rf $scripts
+sudo -i -u $user git clone \
+ https://git.linaro.org/toolchain/jenkins-scripts.git $scripts
+exec sudo -i -u $user $scripts/tcwg-lnt/create-server.sh $config
diff --git a/tcwg-base/tcwg-lnt/start.sh b/tcwg-base/tcwg-lnt/start.sh
new file mode 100755
index 00000000..7a365e80
--- /dev/null
+++ b/tcwg-base/tcwg-lnt/start.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+set -euf -o pipefail
+
+usage ()
+{
+ cat <<EOF
+$0 [OPTIONS] -- IMAGE CONFIG
+
+Options:
+ --verbose true/false
+ Whether to run in verbose mode
+
+ IMAGE
+ Docker tcwg-host image
+
+ CONFIG
+ LNT config
+EOF
+ exit 1
+}
+
+verbose=false
+additional_options=""
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ --verbose) verbose="$2"; shift ;;
+ --additional_options) additional_options="$2"; shift ;;
+ --) shift; break ;;
+ *) echo "ERROR: Wrong option: $1"; usage ;;
+ esac
+ shift
+done
+
+image="$1"
+config="$2"
+
+if $verbose; then
+ set -x
+fi
+
+if [ x"$image" = x"" ]; then
+ echo "ERROR: image name not provided"
+ usage
+fi
+
+# Use at most half of all available RAM.
+memlimit=$(free -m | awk '/^Mem/ { print $2 }')
+memlimit=$(($memlimit / 2))m
+
+docker run -dt --name=$config-lnt --restart=unless-stopped \
+ --memory=$memlimit --pids-limit=5000 $additional_options \
+ $image "$config"