Mercurial > hg-stable
changeset 52182:fa58f4f97337 stable
ci: shard the test run on mac os X
This should comes with some benefit:
- spread the load across more runner,
- reduce the real-time CI run,
- reduce the "retry" run when we need them.
We start with the Mac jobs, but that would be tremendously useful for Windows
too.
For linux, we need to reduce the startup overhead for this to be worth it.
Building smaller image and speeding up clone should help with that.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 08 Nov 2024 17:08:11 +0100 |
parents | 36e4d1457c6b |
children | 96b113d22b34 |
files | contrib/heptapod-ci.yml |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/heptapod-ci.yml Thu Sep 22 01:02:06 2022 +0200 +++ b/contrib/heptapod-ci.yml Fri Nov 08 17:08:11 2024 +0100 @@ -109,6 +109,7 @@ - PORT_ARG="--port $PORT_START" - echo $PORT_ARG - WHEEL_ARG="" + - SHARDING_ARGS="" - if test -n "$WHEEL_TYPE"; then PY_TAG=`$PYTHON -c 'import sys; v=sys.version_info; t=f"cp{v.major}{v.minor}"; print(f"{t}-{t}")'`; echo "$PY_TAG"; @@ -122,12 +123,18 @@ else echo installing from source; fi; + - if [ -n "$CI_NODE_INDEX" ]; then + echo "Running the test in multiple shard - [$CI_NODE_INDEX/$CI_NODE_TOTAL]"; + SHARDING_ARGS="--shard-index $CI_NODE_INDEX --shard-total $CI_NODE_TOTAL"; + echo "sharding... $SHARDING_ARGS"; + fi - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" "$PYTHON" tests/run-tests.py --color=always $PORT_ARG $WHEEL_ARG $FLAVOR + $SHARDING_ARGS $FILTER $RUNTEST_ARGS; @@ -309,6 +316,10 @@ macos: extends: .test-c stage: platform-compat + # run the test in multiple shard to help spread the load between concurrent + # MR as the macos runner is a shell runner there is not startup overhead + # for tests. + parallel: 10 tags: - macos variables: