@@ -23,7 +23,11 @@ steps:
2323 - " /cache/repos:/cache/repos"
2424 env :
2525 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?}
2731 soft_fail : ${ALLOW_FAIL?}
2832 commands : |
2933 echo "--- Print the full and short commit hashes"
@@ -52,48 +56,65 @@ steps:
5256 echo "JULIA_CPU_THREADS is: $${JULIA_CPU_THREADS:?}"
5357 $${JULIA_BINARY:?} -e '@info "" Sys.CPU_THREADS'
5458
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"
5760 export OPENBLAS_NUM_THREADS=8
58- export TESTS="[\"all\"]"
61+ unset JULIA_DEPOT_PATH
62+ unset JULIA_PKG_SERVER
5963
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:?}
6268
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"
6570
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\"])"
6898 else
69- export JULIA_BINARY_FOR_TESTS ="$${JULIA_BINARY:?}"
99+ export JULIA_CMD_FOR_TESTS ="$${JULIA_BINARY:?}"
70100 export NCORES_FOR_TESTS="Sys.CPU_THREADS"
101+ fi
71102
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
78106
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
90109 fi
91110
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
94114 echo "NCORES_FOR_TESTS is: $${NCORES_FOR_TESTS:?}"
95115 echo "OPENBLAS_NUM_THREADS is: $${OPENBLAS_NUM_THREADS:?}"
116+ echo "GROUP is: ${GROUP?}"
96117 echo "TESTS is: $${TESTS:?}"
97118
98119 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