#!/bin/bash set -euf -o pipefail scripts=$(dirname $0) # shellcheck source=jenkins-helpers.sh . $scripts/jenkins-helpers.sh convert_args_to_variables "$@" obligatory_variables NODE_NAME password declare NODE_NAME password distro="${distro-default}" force="${force-false}" master="${master-silent}" verbose="${verbose-true}" if $verbose; then set -x; fi # Resolve LTS and LTS-1 values to Ubuntu distros. case "$distro" in lts_1) distro=focal ;; lts|default) distro=jammy ;; esac if $force; then keep_existing=false else keep_existing=keep_if_same_image fi case "$NODE_NAME:$master" in tcwg-jade-04:normal) bots=( linaro-clang-aarch64-full-2stage linaro-flang-aarch64-libcxx linaro-lldb-arm-ubuntu ) ;; tcwg-jade-04:buildkite) bots=( # 1 bot per config to limit the # total build time to 1x the slowest config. # aarch64 exceptions/no-exceptions and Armv7-M picolib # (which is v7-M being simulated on AArch64). linaro-aarch64-libcxx-01 linaro-aarch64-libcxx-02 linaro-aarch64-libcxx-03 # These can all build any v7/8 config. # 4 because there's 4 combinations. # exceptions/no exceptions armv7/armv8 linaro-armv8-libcxx-01 linaro-armv8-libcxx-02 linaro-armv8-libcxx-03 linaro-armv8-libcxx-04 ) ;; tcwg-jade-01:normal) bots=( # Bots in same order as in llvm-zorg/.../workers.py linaro-clang-armv7-global-isel linaro-clang-armv7-lnt linaro-clang-armv7-2stage linaro-clang-armv7-vfpv3-2stage linaro-clang-armv8-quick linaro-clang-armv8-lld-2stage linaro-clang-aarch64-quick linaro-clang-aarch64-lld-2stage linaro-clang-aarch64-global-isel linaro-flang-aarch64-dylib linaro-flang-aarch64-sharedlibs linaro-flang-aarch64-out-of-tree linaro-flang-aarch64-release linaro-flang-aarch64-debug-reverse-iteration linaro-flang-aarch64-rel-assert linaro-flang-aarch64-latest-gcc ) ;; tcwg-g3-01:normal) # -01 is 32-core / 64GB RAM G3 instance. It can comforably run # 1-2 linaro-g3-* workers. bots=( linaro-g3-01 ) ;; tcwg-g3-02:normal) # Testing lldb running on SVE/PAC enabled G3 hardware. bots=( linaro-lldb-aarch64-ubuntu ) ;; tcwg-g3-04:normal) # -04 is 64-core / 128GB RAM G3 instance. It can comforably run # 3-4 linaro-g3-* workers. bots=( linaro-g3-02 linaro-g3-03 linaro-g3-04 ) ;; esac default_distro=$distro for bot in "${bots[@]+${bots[@]}}"; do case "$bot" in linaro-*aarch64-*|linaro-g3-*) arch="arm64" ; distro=$default_distro ;; linaro-*arm*|linaro-tk1-*) arch="armhf" ; distro=$default_distro ;; *) echo "ERROR: Unknown bot: $bot"; exit 1 ;; esac image="linaro/ci-$arch-tcwg-llvmbot-ubuntu:$distro" $scripts/tcwg-start-container.sh \ --container "$master-$bot" \ --image "$image" \ --keep_existing "$keep_existing" \ --verbose "$verbose" \ -- \ $image $master $bot $password done