Mercurial > hg-stable
diff contrib/heptapod-ci.yml @ 52174:75bc7557e49f stable
ci: use extends instead of <<: *x
The old form is a yaml construct that make it hard to share variable definition.
The "extends:" key is a gitlab specific that preserve the variable definition
and just add the new ones. This will help us to reduce duplication.
This has the effect of fixing some of variants definition we though we set while
we did actually not. Most notably, the "rust" variant for 3.12 and 3.13 seems
fully broken in the CI (possibly because some rust-cpython version issue?).
This changeset only reveal such breackage and does not introduce them.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 08 Nov 2024 14:35:57 +0100 |
parents | 50fa42a2a79a |
children | 74a9fbc1b574 |
line wrap: on
line diff
--- a/contrib/heptapod-ci.yml Thu Nov 07 17:22:05 2024 +0100 +++ b/contrib/heptapod-ci.yml Fri Nov 08 14:35:57 2024 +0100 @@ -35,13 +35,16 @@ TEST_HGTESTS_ALLOW_NETIO: "0" SHOW_VERSION_OF: "$PYTHON" -.all_template: &all +.all: + # help changing all job at once when debugging when: on_success + # make sure jobs from later steps does not wait for anything implicit before + # starting. needs: [] -.build-wheel: &wheel +.build-wheel: + extends: .all image: "registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-c:v3.0" - <<: *all stage: build variables: WHEEL_TYPE: "" @@ -62,7 +65,7 @@ expire_in: 1 week build-c-wheel: - <<: *wheel + extends: .build-wheel variables: WHEEL_TYPE: "c" parallel: @@ -75,10 +78,8 @@ - cp312-cp312 - cp313-cp313 -# TODO: We should select the wheel compatible with the python (and plateform) -# we use. This is necessary to build multiple wheel. -.runtests_template: &runtests - <<: *all +.runtests: + extends: .all stage: tests # The runner made a clone as root. # We make a new clone owned by user used to run the step. @@ -110,7 +111,7 @@ fi checks: - <<: *runtests + extends: .runtests stage: checks variables: SHOW_VERSION_OF: "$PYTHON black clang-format" @@ -118,7 +119,7 @@ CI_CLEVER_CLOUD_FLAVOR: S rust-cargo-test: - <<: *all + extends: .all stage: checks script: - make rust-tests @@ -126,14 +127,14 @@ variables: CI_CLEVER_CLOUD_FLAVOR: S -.test-c: &test_c - <<: *runtests +.test-c: + extends: .runtests variables: RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt" TEST_HGTESTS_ALLOW_NETIO: "1" test-c: - <<: *test_c + extends: .test-c needs: - job: build-c-wheel parallel: @@ -146,24 +147,24 @@ TEST_HGTESTS_ALLOW_NETIO: "1" test-pure: - <<: *runtests + extends: .runtests variables: RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt" -test-rust: &test_rust - <<: *runtests +test-rust: + extends: .runtests variables: HGWITHRUSTEXT: cpython RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt" test-rhg: - <<: *runtests + extends: .runtests variables: HGWITHRUSTEXT: cpython RUNTEST_ARGS: "--rust --rhg --blacklist /tmp/check-tests.txt" test-chg: - <<: *runtests + extends: .runtests variables: RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg" @@ -171,7 +172,7 @@ # is a simple start to be able to check if we break the lowest supported # version (and 3.12 have been giving us various troubles) test-3.8-c: - <<: *test_c + extends: .test-c stage: py-version-compat when: manual # avoid overloading the CI by default variables: @@ -186,7 +187,7 @@ - BUILD_PY_ID: "cp38-cp38" test-3.12-c: - <<: *test_c + extends: .test-c stage: py-version-compat when: manual # avoid overloading the CI by default variables: @@ -201,14 +202,14 @@ - BUILD_PY_ID: "cp312-cp312" test-3.12-rust: - <<: *test_rust + extends: test-rust stage: py-version-compat when: manual # avoid overloading the CI by default variables: PYTHON: python3.12 test-3.13-c: - <<: *test_c + extends: .test-c stage: py-version-compat when: manual # avoid overloading the CI by default variables: @@ -223,14 +224,14 @@ - BUILD_PY_ID: "cp313-cp313" test-3.13-rust: - <<: *test_rust + extends: test-rust stage: py-version-compat when: manual # avoid overloading the CI by default variables: PYTHON: python3.13 check-pytype: - <<: *test_rust + extends: test-rust stage: checks before_script: - export PATH="/home/ci-runner/vendor/pyenv/pyenv-2.4.7-adf3c2bccf09cdb81febcfd15b186711a33ac7a8/shims:/home/ci-runner/vendor/pyenv/pyenv-2.4.7-adf3c2bccf09cdb81febcfd15b186711a33ac7a8/bin:$PATH" @@ -249,8 +250,8 @@ # is stored in OLDPWD. Of the added variables, MSYSTEM is crucial to running # run-tests.py- it is needed to make run-tests.py generate a `python3` script # that satisfies the various shebang lines and delegates to `py -3`. -.window_runtests_template: &windows_runtests - <<: *all +.windows-runtests: + extends: .all when: manual # we don't have any Windows runners anymore at the moment stage: platform-compat before_script: @@ -268,7 +269,7 @@ - C:/hgdev/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" $PYTHON tests/run-tests.py --color=always $RUNTEST_ARGS' windows: - <<: *windows_runtests + extends: .windows-runtests when: manual tags: - windows @@ -277,7 +278,7 @@ PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe windows-pyox: - <<: *windows_runtests + extends: .windows-runtests when: manual # pyoxidizer builds seem broken with --no-use-pep517 tags: - windows @@ -286,7 +287,7 @@ PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe macos: - <<: *test_c + extends: .test-c stage: platform-compat when: manual # avoid overloading the CI by default tags: