diff options
author | tcwg-buildslave <tcwg-buildslave@linaro.org> | 2024-04-27 00:40:13 +0000 |
---|---|---|
committer | tcwg-buildslave <tcwg-buildslave@linaro.org> | 2024-04-27 00:40:13 +0000 |
commit | 16233381fd2f65ce0303f710fe95d03a676d87ae (patch) | |
tree | f3f94b8e207f581ee772cc93d8ad42aa01efb014 | |
parent | 759d4b161a62d4873ebf120ab340cedff47b9bf9 (diff) | |
parent | ab74db22d9a363e96c2f5127dd93135bb7284b2d (diff) |
Merge "Merge commit '603b05fc10405cc714af1a2e6a69837fae1c34b8' into tcwg-tested" into tcwg-testedtcwg-tested
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" |