summaryrefslogtreecommitdiff
path: root/tcwg-update-llvmbot-containers.sh
blob: 5164249f419f12d4a87585a027fb8fad8cc8b4c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/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-bionic}"
force="${force-false}"
master="${master-silent}"
verbose="${verbose-true}"

if $verbose; then set -x; fi

if $force; then
    keep_existing=false
else
    keep_existing=keep_if_same_image
fi

case "$NODE_NAME:$master" in
    tcwg-amp-03:silent)
	bots=(
	    linaro-aarch64-full
	    linaro-aarch64-global-isel
	)
	;;
    tcwg-amp-04:silent)
	bots=(
	    linaro-armv7-selfhost
	    linaro-armv7-global-isel
	)
	;;
    tcwg-amp-05:normal)
	bots=(
	    linaro-arm-lldb
	    linaro-aarch64-lldb
	)
	;;
    tcwg-amp-05:buildkite)
	bots=(
	    # 1 bot per AArch64 config to limit the
	    # total build time to 1x the slowest config
	    linaro-aarch64-libcxx-01
	    linaro-aarch64-libcxx-02
	)
	;;
    tcwg-amp-06:buildkite)
	bots=(
	    # These can all build any v7/8 config.
	    # 4 because there's 4 combinations.
	    # exceptions/no exceptions armv7/armv8
	    # 1 bot per config limits total build
	    # time to 1x the slowest bot.
	    linaro-armv8-libcxx-01
	    linaro-armv8-libcxx-02
	    linaro-armv8-libcxx-03
	    linaro-armv8-libcxx-04
	)
	;;
    tcwg-jade-01:normal)
	bots=(
	    linaro-aarch64-full
	    linaro-aarch64-global-isel
	    linaro-armv7-selfhost
	    linaro-armv7-global-isel
	    linaro-aarch64-lld
	    linaro-aarch64-quick
	    linaro-aarch64-flang-oot
	    linaro-aarch64-flang-dylib
	    linaro-aarch64-flang-sharedlibs
	    linaro-aarch64-flang-release
	    linaro-aarch64-flang-rel-assert
	    linaro-armv8-lld
	    linaro-armv7-lnt
	    linaro-armv7-quick
            linaro-aarch64-flang-debug
            linaro-aarch64-flang-latest-clang
            linaro-aarch64-flang-latest-gcc
	)
	;;
    tcwg-llvmbot_d05-01:silent)
	bots=(
	    linaro-aarch64-lld
	    linaro-aarch64-quick
	    linaro-aarch64-flang-oot
	    linaro-aarch64-flang-dylib
	    linaro-aarch64-flang-sharedlibs
            linaro-aarch64-flang-release
            linaro-aarch64-flang-rel-assert
	    linaro-armv8-lld
	    linaro-armv7-lnt
	    linaro-armv7-quick
            linaro-aarch64-flang-debug
            linaro-aarch64-flang-latest-clang
            linaro-aarch64-flang-latest-gcc
	)
	;;
    tcwg-llvmbot_tk1-09:silent)
	# Connect linaro-tk1-09 to silent buildmaster to test its stability
	bots=("$(echo "$NODE_NAME" | sed -e "s/tcwg-llvmbot_/linaro-/")")
	;;
    tcwg-llvmbot_tk1-09:normal)
	;;
    tcwg-llvmbot_tk1-*:normal)
	bots=("$(echo "$NODE_NAME" | sed -e "s/tcwg-llvmbot_/linaro-/")")
	;;
esac

for bot in "${bots[@]+${bots[@]}}"; do
    case "$bot" in
	linaro-aarch64-*) arch="arm64" ;;
	linaro-arm*|linaro-tk1-*) arch="armhf" ;;
	*) 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