@@ -23,7 +23,11 @@ steps:
23
23
- " /cache/repos:/cache/repos"
24
24
env :
25
25
JULIA_SHELL : " /bin/bash"
26
- timeout_in_minutes : ${TIMEOUT?}
26
+ timeout_in_minutes : ${TIMEOUT_BK?}
27
+ retry :
28
+ automatic :
29
+ - exit_status : " *"
30
+ limit : ${RETRIES?}
27
31
soft_fail : ${ALLOW_FAIL?}
28
32
commands : |
29
33
echo "--- Print the full and short commit hashes"
@@ -52,48 +56,65 @@ steps:
52
56
echo "JULIA_CPU_THREADS is: $${JULIA_CPU_THREADS:?}"
53
57
$${JULIA_BINARY:?} -e '@info "" Sys.CPU_THREADS'
54
58
55
- echo "--- Set some environment variables in preparation for running the Julia test suite"
56
- unset JULIA_DEPOT_PATH
59
+ echo "--- Set some environment variables"
57
60
export OPENBLAS_NUM_THREADS=8
58
- export TESTS="[\"all\"]"
61
+ unset JULIA_DEPOT_PATH
62
+ unset JULIA_PKG_SERVER
59
63
60
- if [[ "${IS_RR?}" == "yes" ]]; then
61
- export JULIA_BINARY_UNDER_RR="$${JULIA_BINARY:?} .buildkite/utilities/rr/rr_capture.jl $${JULIA_BINARY:?}"
64
+ # Make sure that temp files and temp directories are created in a location that is
65
+ # backed by real storage.
66
+ export TMPDIR="$(pwd)/tmp"
67
+ mkdir -p $${TMPDIR:?}
62
68
63
- export JULIA_BINARY_FOR_TESTS="$${JULIA_BINARY_UNDER_RR:?}"
64
- export NCORES_FOR_TESTS="parse(Int, ENV[\"JULIA_RRCAPTURE_NUM_CORES\"])"
69
+ export NETWORK_RELATED_TESTS="Artifacts Downloads download LazyArtifacts LibGit2/online Pkg"
65
70
66
- # For the `rr` job, we disable multi-threading.
67
- export JULIA_NUM_THREADS=1
71
+ if [[ "${GROUP?}" == "all" ]]; then
72
+ export TESTS="all LibGit2/online --force-net"
73
+ elif [[ "${GROUP?}" == "all_except_pkg" ]]; then
74
+ export TESTS="all LibGit2/online --force-net --skip Pkg"
75
+ elif [[ "${GROUP?}" == "g1" ]]; then
76
+ # Group 1: ALL tests EXCEPT the network-related tests.
77
+ export TESTS="all --force-net --skip $${NETWORK_RELATED_TESTS:?}"
78
+ elif [[ "${GROUP?}" == "g2" ]]; then
79
+ # Group 2: ONLY the network-related tests.
80
+ # In Group 2, we use whatever the default setting is with regards to the Pkg server.
81
+ export TESTS="$${NETWORK_RELATED_TESTS:?} --force-net"
82
+ elif [[ "${GROUP?}" == "g3" ]]; then
83
+ # Group 3: only Pkg.
84
+ # In Group 3, we explicitly opt-out of the Pkg server.
85
+ # The purpose of group 3 is to test the non-Pkg-server codepaths of Pkg.
86
+ export TESTS="Pkg --force-net"
87
+ export JULIA_PKG_SERVER=""
88
+ else
89
+ echo "Invalid value for GROUP: ${GROUP?}"
90
+ exit 1
91
+ fi
92
+
93
+ export JULIA_TEST_RR_TIMEOUT="${TIMEOUT_RR?}"
94
+
95
+ if [[ "${IS_RR?}" == "yes" ]]; then
96
+ export JULIA_CMD_FOR_TESTS="$${JULIA_BINARY:?} .buildkite/utilities/rr/rr_capture.jl $${JULIA_BINARY:?}"
97
+ export NCORES_FOR_TESTS="parse(Int, ENV[\"JULIA_RRCAPTURE_NUM_CORES\"])"
68
98
else
69
- export JULIA_BINARY_FOR_TESTS ="$${JULIA_BINARY:?}"
99
+ export JULIA_CMD_FOR_TESTS ="$${JULIA_BINARY:?}"
70
100
export NCORES_FOR_TESTS="Sys.CPU_THREADS"
101
+ fi
71
102
72
- if [[ "${IS_ST?}" == "yes" ]]; then
73
- # "ST" = single-threaded
74
- export JULIA_NUM_THREADS=1
75
- elif [[ "${IS_MT?}" == "yes" ]]; then
76
- # "MT" = multi-threaded
77
- export JULIA_NUM_THREADS=16
103
+ if [[ "${IS_ST?}" == "yes" ]]; then
104
+ export JULIA_NUM_THREADS=1
105
+ fi
78
106
79
- if [[ "$${BUILDKITE_PIPELINE_SLUG:?}" == "julia-release-1-dot-6" ]]; then
80
- # On Julia 1.6, we skip the Distributed test suite if multithreading is enabled.
81
- export TESTS="[\"all\", \"--skip\", \"Distributed\"]"
82
- elif [[ "$${BUILDKITE_PIPELINE_SLUG:?}" == "julia-release-1-dot-7" ]]; then
83
- # On Julia 1.7, we skip the Distributed test suite if multithreading is enabled.
84
- export TESTS="[\"all\", \"--skip\", \"Distributed\"]"
85
- else
86
- # On Julia 1.8 and later, we do not skip any test suites.
87
- export TESTS="[\"all\"]"
88
- fi
89
- fi
107
+ if [[ "${IS_MT?}" == "yes" ]]; then
108
+ export JULIA_NUM_THREADS=16
90
109
fi
91
110
92
- echo "JULIA_BINARY_FOR_TESTS is: $${JULIA_BINARY_FOR_TESTS:?}"
93
- echo "JULIA_NUM_THREADS is: $${JULIA_NUM_THREADS}" # this variable might not be set
111
+ echo "--- Print the test group, list of test sets, and other useful environment variables"
112
+ echo "JULIA_CMD_FOR_TESTS is: $${JULIA_CMD_FOR_TESTS:?}"
113
+ echo "JULIA_NUM_THREADS is: $${JULIA_NUM_THREADS}" # Note: this environment variable might not be set
94
114
echo "NCORES_FOR_TESTS is: $${NCORES_FOR_TESTS:?}"
95
115
echo "OPENBLAS_NUM_THREADS is: $${OPENBLAS_NUM_THREADS:?}"
116
+ echo "GROUP is: ${GROUP?}"
96
117
echo "TESTS is: $${TESTS:?}"
97
118
98
119
echo "--- Run the Julia test suite"
99
- $${JULIA_BINARY_FOR_TESTS :?} -e "Base.runtests($${TESTS:?}; ncores = $${NCORES_FOR_TESTS:?})"
120
+ $${JULIA_CMD_FOR_TESTS :?} -e "Base.runtests(\" $${TESTS:?}\" ; ncores = $${NCORES_FOR_TESTS:?})"
0 commit comments