annotate contrib/heptapod-ci.yml @ 52202:48f772a5c476 stable

ci: shard the tests on windows too
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 10 Nov 2024 02:40:44 +0100
parents 8cacf7952f14
children 4602e90207f3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
1 # Don't run pipelines on branch "merge", since we're fast-forward only.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
2 # Gitlab sees a new branch (since e.g. `topic/stable/my-topic` becomes
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
3 # `branch/stable`), but the hash hasn't changed. There is no reason to
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
4 # re-run the CI in our case, since we haven't built up any specific automation.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
5 # Right now it's just wasted CI and developer time.
50736
f5b02cce82ff heptapod-ci: remove push exception for named branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50735
diff changeset
6 # One can still run the pipeline manually via the web interface,
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
7 # like in the case of releases, to make *extra* sure that the actual branch
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
8 # has succeeded.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
9 workflow:
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
10 rules:
50736
f5b02cce82ff heptapod-ci: remove push exception for named branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50735
diff changeset
11 - if: $CI_COMMIT_BRANCH =~ /^branch\/.*/ && $CI_PIPELINE_SOURCE != "web"
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
12 when: never
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
13 - if: $CI_PIPELINE_SOURCE == "merge_request_event"
50738
929655c0e613 heptapod-ci: turn off pipelines for merge request events
Raphaël Gomès <rgomes@octobus.net>
parents: 50737
diff changeset
14 when: never
929655c0e613 heptapod-ci: turn off pipelines for merge request events
Raphaël Gomès <rgomes@octobus.net>
parents: 50737
diff changeset
15 - if: $CI_PIPELINE_SOURCE == "push"
50737
1aba446bf8e6 heptapod-ci: always make the default run condition explicit
Raphaël Gomès <rgomes@octobus.net>
parents: 50736
diff changeset
16 when: always
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
17 - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
18 when: never
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
19 - if: $CI_COMMIT_BRANCH
50737
1aba446bf8e6 heptapod-ci: always make the default run condition explicit
Raphaël Gomès <rgomes@octobus.net>
parents: 50736
diff changeset
20 when: always
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
21
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
22 stages:
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
23 - build
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
24 - checks
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
25 - tests
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
26 - platform-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
27 - py-version-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
28
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
29
46323
723d241543b0 heptapod-ci: allow testing with docker image other than :latest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46256
diff changeset
30 image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG
44166
8b1dd3f42396 heptapod-ci: add a basic file to be able to run tests with heptapod
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
31
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
32 variables:
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
33 PYTHON: python
51772
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51771
diff changeset
34 HG_CI_IMAGE_TAG: "v2.1"
52177
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
35 # a directory dedicated to creating files and temporary clone
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
36 # with shell runner, its content is not cleaned from one call to the next,
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
37 # so plan for it.
52178
d6ed4da850ea ci: move the "tempory work dir" to "concurrency-safe" location
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52177
diff changeset
38 TMP_WORK_DIR: "${CI_PROJECT_DIR}/../.."
52197
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
39 # we use CIBW_SKIP="pp*" to prevent the building of pypy wheel that are neither
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
40 # needed nor working.
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
41 CIBW_SKIP: "pp*"
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
42
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
43 .all:
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
44 # help changing all job at once when debugging
48865
477b5145e1a0 ci: do not trigger phabricator for merge-request
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48858
diff changeset
45 when: on_success
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
46 # make sure jobs from later steps does not wait for anything implicit before
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
47 # starting.
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
48 needs: []
47820
f6879956a386 ci: add a "all" template to easily control "when" test run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47805
diff changeset
49
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
50 .build-wheel:
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
51 extends: .all
52166
94ded8440db6 ci: use a pre-setup many-linux image to build wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52165
diff changeset
52 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-c:v3.0"
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
53 stage: build
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
54 variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
55 WHEEL_TYPE: ""
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
56 FLAVOR: ""
52164
2c4283c9fa93 setup: add a way to force the setup to translate (or fail)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52163
diff changeset
57 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
52165
d22b6d6e02e1 ci: use smaller VM to build wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52164
diff changeset
58 CI_CLEVER_CLOUD_FLAVOR: "XS"
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
59 before_script:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
60 - echo $WHEEL_TYPE
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
61 - test -n "$WHEEL_TYPE"
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
62 - echo $FLAVOR
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
63 - mkdir -p wheels/$WHEEL_TYPE/$BUILD_PY_ID
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
64 script:
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
65 - /opt/python/$BUILD_PY_ID/bin/python setup.py bdist_wheel --dist-dir tmp-wheelhouse
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
66 - auditwheel repair tmp-wheelhouse/*.whl -w wheels/$WHEEL_TYPE/$BUILD_PY_ID
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
67 artifacts:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
68 paths:
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
69 - wheels/$WHEEL_TYPE/$BUILD_PY_ID
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
70 expire_in: 1 week
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
71
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
72 build-c-wheel:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
73 extends: .build-wheel
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
74 variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
75 WHEEL_TYPE: "c"
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
76 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
77 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
78 - BUILD_PY_ID:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
79 - cp38-cp38
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
80 - cp39-cp39
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
81 - cp310-cp310
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
82 - cp311-cp311
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
83 - cp312-cp312
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
84 - cp313-cp313
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
85
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
86 .runtests:
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
87 extends: .all
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
88 stage: tests
52175
74a9fbc1b574 ci: move some variables closer to their usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52174
diff changeset
89 variables:
74a9fbc1b574 ci: move some variables closer to their usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52174
diff changeset
90 SHOW_VERSION_OF: "$PYTHON"
74a9fbc1b574 ci: move some variables closer to their usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52174
diff changeset
91 TEST_HGTESTS_ALLOW_NETIO: "0"
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
92 FILTER: ""
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
93 FLAVOR: ""
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
94 RUNTEST_ARGS: ""
46244
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
95 # The runner made a clone as root.
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
96 # We make a new clone owned by user used to run the step.
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
97 before_script:
51771
e153995011b7 heptapod-ci: move version prints closer to the start
Raphaël Gomès <rgomes@octobus.net>
parents: 51759
diff changeset
98 - echo "python used, $PYTHON"
52032
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52024
diff changeset
99 - for tool in $SHOW_VERSION_OF ; do echo '#' version of $tool; $tool --version; done
52177
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
100 - rm -rf "${TMP_WORK_DIR}"/mercurial-ci/ # Clean slate if not using containers
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
101 - hg clone . "${TMP_WORK_DIR}"/mercurial-ci/ --noupdate --config phases.publish=no
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
102 - hg -R "${TMP_WORK_DIR}"/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
103 - cd "${TMP_WORK_DIR}"/mercurial-ci/
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
104 - ls -1 tests/test-check-*.* > "${TMP_WORK_DIR}"/check-tests.txt
44166
8b1dd3f42396 heptapod-ci: add a basic file to be able to run tests with heptapod
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
105 script:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
106 - echo "$TEST_HGTESTS_ALLOW_NETIO"
44170
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44169
diff changeset
107 - echo "$RUNTEST_ARGS"
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
108 - echo "$FILTER"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
109 - echo "$FLAVOR"
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
110 - echo "$WHEEL_TYPE"
52179
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52178
diff changeset
111 - PORT_START=`expr 19051 + 1009 '*' $CI_CONCURRENT_ID`
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52178
diff changeset
112 - PORT_ARG="--port $PORT_START"
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52178
diff changeset
113 - echo $PORT_ARG
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
114 - WHEEL_ARG=""
52182
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
115 - SHARDING_ARGS=""
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
116 - if test -n "$WHEEL_TYPE"; then
52169
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
117 PY_TAG=`$PYTHON -c 'import sys; v=sys.version_info; t=f"cp{v.major}{v.minor}"; print(f"{t}-{t}")'`;
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
118 echo "$PY_TAG";
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
119 test -n "PY_TAG";
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
120 WHEEL="`ls -1 $CI_PROJECT_DIR/wheels/$WHEEL_TYPE/$PY_TAG/*.whl`";
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
121 test -n "$WHEEL";
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
122 echo installing from $WHEEL;
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
123 WHEEL_ARG="--hg-wheel $WHEEL";
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
124 echo disabling flavor as this is currently incompatible with '"--hg-wheel"';
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
125 FLAVOR="";
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
126 else
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
127 echo installing from source;
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
128 fi;
52182
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
129 - if [ -n "$CI_NODE_INDEX" ]; then
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
130 echo "Running the test in multiple shard - [$CI_NODE_INDEX/$CI_NODE_TOTAL]";
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
131 SHARDING_ARGS="--shard-index $CI_NODE_INDEX --shard-total $CI_NODE_TOTAL";
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
132 echo "sharding... $SHARDING_ARGS";
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
133 fi
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
134 - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
135 "$PYTHON" tests/run-tests.py
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
136 --color=always
52179
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52178
diff changeset
137 $PORT_ARG
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
138 $WHEEL_ARG
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
139 $FLAVOR
52182
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
140 $SHARDING_ARGS
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
141 $FILTER
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
142 $RUNTEST_ARGS;
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
143
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
144 checks:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
145 extends: .runtests
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
146 stage: checks
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
147 variables:
52032
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52024
diff changeset
148 SHOW_VERSION_OF: "$PYTHON black clang-format"
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
149 RUNTEST_ARGS: "--time"
52177
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
150 FILTER: "--test-list ${TMP_WORK_DIR}/check-tests.txt"
49639
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49512
diff changeset
151 CI_CLEVER_CLOUD_FLAVOR: S
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
152
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
153 rust-cargo-test:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
154 extends: .all
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
155 stage: checks
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
156 script:
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
157 - make rust-tests
50013
86958104b6ca heptapod-ci: add `clippy` to the CI
Raphaël Gomès <rgomes@octobus.net>
parents: 49770
diff changeset
158 - make cargo-clippy
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
159 variables:
49639
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49512
diff changeset
160 CI_CLEVER_CLOUD_FLAVOR: S
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
161
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
162 .runtests-no-check:
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
163 extends: .runtests
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
164 variables:
52177
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
165 FILTER: "--blacklist ${TMP_WORK_DIR}/check-tests.txt"
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
166 TEST_HGTESTS_ALLOW_NETIO: "1"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
167
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
168 .test-c:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
169 extends: .runtests-no-check
44170
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44169
diff changeset
170 variables:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
171 FLAVOR: "--no-rust"
44171
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44170
diff changeset
172
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
173 test-c:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
174 extends: .test-c
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
175 needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
176 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
177 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
178 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
179 - BUILD_PY_ID: "cp311-cp311"
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
180 variables:
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
181 WHEEL_TYPE: "c"
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
182
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
183 test-pure:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
184 extends: .runtests-no-check
44171
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44170
diff changeset
185 variables:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
186 FLAVOR: "--pure"
44172
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44171
diff changeset
187
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
188 test-rust:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
189 extends: .runtests-no-check
44172
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44171
diff changeset
190 variables:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
191 HGWITHRUSTEXT: "cpython"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
192 FLAVOR: "--rust"
44977
aa568b6c6a10 heptapod-ci: also run tests for chg on python 2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44586
diff changeset
193
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
194 test-rhg:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
195 extends: .runtests-no-check
46768
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
196 variables:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
197 HGWITHRUSTEXT: "cpython"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
198 FLAVOR: "--rust --rhg"
46768
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
199
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
200 test-chg:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
201 extends: .runtests-no-check
46147
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46049
diff changeset
202 variables:
52176
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52175
diff changeset
203 FLAVOR: "--chg"
47040
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
204
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
205 # note: we should probably get a full matrix for flavor × py-version, but this
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
206 # is a simple start to be able to check if we break the lowest supported
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
207 # version (and 3.12 have been giving us various troubles)
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
208 test-3.8-c:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
209 extends: .test-c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
210 stage: py-version-compat
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
211 when: manual # avoid overloading the CI by default
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
212 variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
213 PYTHON: python3.8
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
214 WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
215 needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
216 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
217 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
218 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
219 - BUILD_PY_ID: "cp38-cp38"
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
220
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
221 test-3.12-c:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
222 extends: .test-c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
223 stage: py-version-compat
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
224 when: manual # avoid overloading the CI by default
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
225 variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
226 PYTHON: python3.12
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
227 WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
228 needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
229 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
230 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
231 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
232 - BUILD_PY_ID: "cp312-cp312"
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
233
51885
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
234 test-3.12-rust:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
235 extends: test-rust
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
236 stage: py-version-compat
51885
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
237 when: manual # avoid overloading the CI by default
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
238 variables:
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
239 PYTHON: python3.12
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
240
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
241 test-3.13-c:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
242 extends: .test-c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
243 stage: py-version-compat
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
244 when: manual # avoid overloading the CI by default
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
245 variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
246 PYTHON: python3.13
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
247 WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
248 needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
249 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
250 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
251 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
252 - BUILD_PY_ID: "cp313-cp313"
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
253
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
254 test-3.13-rust:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
255 extends: test-rust
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
256 stage: py-version-compat
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
257 when: manual # avoid overloading the CI by default
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
258 variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
259 PYTHON: python3.13
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
260
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
261 check-pytype:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
262 extends: test-rust
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
263 stage: checks
47040
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
264 before_script:
51772
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51771
diff changeset
265 - 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"
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51771
diff changeset
266 - echo "PATH, $PATH"
52177
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
267 - hg clone . "${TMP_WORK_DIR}"/mercurial-ci/ --noupdate --config phases.publish=no
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
268 - hg -R "${TMP_WORK_DIR}"/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
269 - cd "${TMP_WORK_DIR}"/mercurial-ci/
47040
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
270 - make local PYTHON=$PYTHON
49769
556efeea6dbf ci: run the script to add vendored type stubs to typeshed
Matt Harbison <matt_harbison@yahoo.com>
parents: 49512
diff changeset
271 - ./contrib/setup-pytype.sh
49422
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49287
diff changeset
272 script:
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49287
diff changeset
273 - echo "Entering script section"
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49287
diff changeset
274 - sh contrib/check-pytype.sh
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
275
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
276 # `sh.exe --login` sets a couple of extra environment variables that are defined
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
277 # in the MinGW shell, but switches CWD to /home/$username. The previous value
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
278 # is stored in OLDPWD. Of the added variables, MSYSTEM is crucial to running
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
279 # run-tests.py- it is needed to make run-tests.py generate a `python3` script
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
280 # that satisfies the various shebang lines and delegates to `py -3`.
52192
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
281
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
282 .windows:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
283 extends: .all
48345
b52cf5063865 heptapod-ci: make Windows jobs manual again
Raphaël Gomès <rgomes@octobus.net>
parents: 48326
diff changeset
284 when: manual # we don't have any Windows runners anymore at the moment
52192
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
285 tags:
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
286 - windows
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
287 before_script:
52177
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52176
diff changeset
288 - C:/hgdev/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.* > "${TMP_WORK_DIR}"/check-tests.txt'
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
289 # TODO: find/install cvs, bzr, perforce, gpg, sqlite3
52192
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
290 variables:
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
291 PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
292
52199
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
293
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
294 # a dummy job that only serve to trigger the wider windows build
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
295 trigger-wheel-windows:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
296 extends: .all
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
297 # smallest I know of
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
298 image: busybox
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
299 when: manual
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
300 stage: build
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
301 variables:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
302 GIT_STRATEGY: none
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
303 CI_CLEVER_CLOUD_FLAVOR: "XS"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
304 script:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
305 - echo 'let us build some wheels.'
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
306
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
307 build-c-wheel-windows:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
308 extends: .windows
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
309 stage: build
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
310 # wait for someone to click on "trigger-wheel-windows"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
311 when: on_success
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
312 needs:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
313 - "trigger-wheel-windows"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
314 script:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
315 - echo "Entering script section"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
316 - echo "python used, $Env:PYTHON"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
317 - Invoke-Expression "$Env:PYTHON -V"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
318 - echo "$Env:RUNTEST_ARGS"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
319 - echo "$Env:TMP"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
320 - echo "$Env:TEMP"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
321 - "C:/hgdev/venvs/python39-x64/Scripts/python.exe -m cibuildwheel --output-dir wheels/win32"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
322 artifacts:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
323 paths:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
324 - wheels
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
325 expire_in: 1 week
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
326 parallel:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
327 matrix:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
328 # "cp39" is first as it unlock the tests
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
329 - CIBW_BUILD:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
330 - "cp39-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
331 - "cp38-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
332 - "cp310-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
333 - "cp311-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
334 - "cp312-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
335 - "cp313-*"
52200
6c777d25e8a6 wheel: explicitly list built architecture
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52199
diff changeset
336 CIBW_ARCHS:
6c777d25e8a6 wheel: explicitly list built architecture
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52199
diff changeset
337 - "AMD64"
6c777d25e8a6 wheel: explicitly list built architecture
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52199
diff changeset
338 - "x86"
52199
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
339
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
340
52192
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
341 .windows-runtests:
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
342 extends: .windows
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52191
diff changeset
343 stage: platform-compat
52202
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
344 # the UX for manual parallel jobs is quite awful, and the job que depends
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
345 # upon are manual anyway, so we can make this start automatically once the
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
346 # associated wheel is ready.
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
347 when: on_success
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
348 parallel: 20
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
349 script:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
350 - echo "Entering script section"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
351 - echo "python used, $Env:PYTHON"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
352 - Invoke-Expression "$Env:PYTHON -V"
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
353 - echo "$Env:HGTESTS_ALLOW_NETIO"
52201
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
354 - echo "$Env:WHEEL_ARG"
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
355 - echo "$Env:FLAVOR"
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
356 - echo "$Env:FILTER"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
357 - echo "$Env:RUNTEST_ARGS"
47801
d5d46dcd356b windows-ci: clean up the Heptapod CI file now that the baseline is solid
Raphaël Gomès <rgomes@octobus.net>
parents: 47791
diff changeset
358 - echo "$Env:TMP"
d5d46dcd356b windows-ci: clean up the Heptapod CI file now that the baseline is solid
Raphaël Gomès <rgomes@octobus.net>
parents: 47791
diff changeset
359 - echo "$Env:TEMP"
52194
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52193
diff changeset
360 # This test is hanging the worker and not that important, so lets skip
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52193
diff changeset
361 # it for now
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52193
diff changeset
362 - C:/hgdev/MinGW/msys/1.0/bin/sh.exe -c 'cd "$OLDPWD" && echo tests/test-clonebundles-autogen.t > $TMP_WORK_DIR/windows-skip.txt'
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
363
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
364 - C:/hgdev/MinGW/msys/1.0/bin/sh.exe
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
365 --login -c 'cd "$OLDPWD"
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
366 && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO"
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
367 $PYTHON tests/run-tests.py
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
368 --color=always
52201
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
369 $WHEEL_ARG
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
370 $FLAVOR
52195
4bbb4fc9af3b ci: adjust port range on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52194
diff changeset
371 --port `expr 19051 + 1009 "*" $CI_CONCURRENT_ID`
52202
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
372 --shard-index $CI_NODE_INDEX --shard-total $CI_NODE_TOTAL
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
373 $FILTER
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
374 $RUNTEST_ARGS;
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
375 '
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
376 variables:
52201
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
377 WHEEL_ARG: ""
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
378 RUNTEST_ARGS: ""
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
379 FLAVOR: ""
52194
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52193
diff changeset
380 FILTER: "--blacklist ${TMP_WORK_DIR}/check-tests.txt --blacklist ${TMP_WORK_DIR}/windows-skip.txt"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
381
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
382 windows:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
383 extends: .windows-runtests
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
384 variables:
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
385 RUNTEST_ARGS: "-j 8"
52201
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
386 WHEEL_ARG: "--hg-wheel wheels/win32/mercurial-*-cp39-cp39-win_amd64.whl"
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
387 needs:
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
388 - job: build-c-wheel-windows
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
389 parallel:
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
390 matrix:
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
391 - CIBW_BUILD: "cp39-*"
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
392 CIBW_ARCHS: "AMD64"
47822
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
393
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
394 windows-pyox:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
395 extends: .windows-runtests
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
396 when: manual # pyoxidizer builds seem broken with --no-use-pep517
47822
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
397 variables:
52193
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52192
diff changeset
398 FLAVOR: "--pyoxidized"
52041
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
399
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
400 macos:
52174
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52173
diff changeset
401 extends: .test-c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
402 stage: platform-compat
52182
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
403 # run the test in multiple shard to help spread the load between concurrent
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
404 # MR as the macos runner is a shell runner there is not startup overhead
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
405 # for tests.
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52180
diff changeset
406 parallel: 10
52041
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
407 tags:
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
408 - macos
52173
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52172
diff changeset
409 variables:
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52172
diff changeset
410 WHEEL_TYPE: "c"
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52172
diff changeset
411 needs:
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52172
diff changeset
412 - build-c-wheel-macos
52172
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
413
52197
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
414 # We could use CIBW_BUILD="cp310-*" to only build the Python 3.10 wheel for now as
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
415 # this is the only one we need to test. However testing that build work on all
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
416 # version is useful and match what we do with Linux.
52172
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
417 #
52197
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
418 # CIBW_SKIP is set globally at the start of the file. See comment there.
52172
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
419 #
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
420 # The weird directory structure match the one we use for Linux to deal with the
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
421 # multiple jobs. (all this might be unnecessary)
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
422 build-c-wheel-macos:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
423 when: manual # avoid overloading the CI by default
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
424 stage: build
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
425 tags:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
426 - macos
52185
4496f059cf5c wheel: enforce that translation being build for macos wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52182
diff changeset
427 variables:
4496f059cf5c wheel: enforce that translation being build for macos wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52182
diff changeset
428 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
52172
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
429 script:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
430 - rm -rf tmp-wheels
52197
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52195
diff changeset
431 - cibuildwheel --output-dir tmp-wheels/
52172
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
432 - for py_version in cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312 cp313-cp313; do
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
433 mkdir -p wheels/c/$py_version/;
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
434 mv tmp-wheels/*$py_version*.whl wheels/c/$py_version/;
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
435 done
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
436 - rm -rf tmp-wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
437 artifacts:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
438 paths:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
439 - wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
440 expire_in: 1 week