annotate contrib/heptapod-ci.yml @ 52276:13be751218e0 stable

ci: add sink for wheels too Sight.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 20 Nov 2024 12:09:35 +0100
parents 843c250fb2de
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
50737
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
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: 50450
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: 50450
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: 50450
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: 50450
diff changeset
5 # Right now it's just wasted CI and developer time.
50739
f5b02cce82ff heptapod-ci: remove push exception for named branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50738
diff changeset
6 # One can still run the pipeline manually via the web interface,
50737
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
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: 50450
diff changeset
8 # has succeeded.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
diff changeset
9 workflow:
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
diff changeset
10 rules:
50739
f5b02cce82ff heptapod-ci: remove push exception for named branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50738
diff changeset
11 - if: $CI_COMMIT_BRANCH =~ /^branch\/.*/ && $CI_PIPELINE_SOURCE != "web"
50737
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
diff changeset
12 when: never
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
diff changeset
13 - if: $CI_PIPELINE_SOURCE == "merge_request_event"
50741
929655c0e613 heptapod-ci: turn off pipelines for merge request events
Raphaël Gomès <rgomes@octobus.net>
parents: 50740
diff changeset
14 when: never
929655c0e613 heptapod-ci: turn off pipelines for merge request events
Raphaël Gomès <rgomes@octobus.net>
parents: 50740
diff changeset
15 - if: $CI_PIPELINE_SOURCE == "push"
50740
1aba446bf8e6 heptapod-ci: always make the default run condition explicit
Raphaël Gomès <rgomes@octobus.net>
parents: 50739
diff changeset
16 when: always
50737
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
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: 50450
diff changeset
18 when: never
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
diff changeset
19 - if: $CI_COMMIT_BRANCH
50740
1aba446bf8e6 heptapod-ci: always make the default run condition explicit
Raphaël Gomès <rgomes@octobus.net>
parents: 50739
diff changeset
20 when: always
50737
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50450
diff changeset
21
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
22 stages:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
23 - nightly-trigger
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
24 - build
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
25 - checks
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
26 - tests
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
27 - platform-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
28 - py-version-compat
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
29 - upload
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
30
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
31
46323
723d241543b0 heptapod-ci: allow testing with docker image other than :latest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46256
diff changeset
32 image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG
44249
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
33
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
34 variables:
52256
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
35 # to debug use:
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
36 #
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
37 # RE_BRANCH: '/^topic/.+/.+$/'
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
38 # RE_TOPIC: '/^xxx/'
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
39 #
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
40 # Instead of the two following lines:
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
41 RE_BRANCH: '/^branch/.+$/'
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
42 RE_TOPIC: '/^topic/.+/.+$/'
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
43 PYTHON: python
51713
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51712
diff changeset
44 HG_CI_IMAGE_TAG: "v2.1"
52211
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
45 # 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: 52210
diff changeset
46 # 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: 52210
diff changeset
47 # so plan for it.
52212
d6ed4da850ea ci: move the "tempory work dir" to "concurrency-safe" location
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52211
diff changeset
48 TMP_WORK_DIR: "${CI_PROJECT_DIR}/../.."
52231
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52229
diff changeset
49 # 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: 52229
diff changeset
50 # needed nor working.
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52229
diff changeset
51 CIBW_SKIP: "pp*"
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
52
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
53 .all:
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
54 # help changing all job at once when debugging
49181
477b5145e1a0 ci: do not trigger phabricator for merge-request
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 49161
diff changeset
55 when: on_success
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
56 # 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: 52207
diff changeset
57 # starting.
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
58 needs: []
47825
f6879956a386 ci: add a "all" template to easily control "when" test run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47810
diff changeset
59
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
60 # dummy job that serve dependencies purpose
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
61 .dummy:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
62 # smallest I know of
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
63 image: busybox
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
64 variables:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
65 GIT_STRATEGY: none
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
66 CI_CLEVER_CLOUD_FLAVOR: "XS"
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
67 script:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
68 - echo 'nothing to see here'
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
69
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
70
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
71 # a dummy job that only serve to trigger others
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
72 #
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
73 # This is useful for two reasons:
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
74 # - the UX around parallel jobs is awful so manually starting them is unpractical
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
75 # - manual starting job cannot make the pipeline "fails" and block a merge,
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
76 # while "on_success" job depending on manual trigger works fine in that regard.
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
77 .trigger:
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
78 extends:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
79 - .all
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
80 - .dummy
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
81 when: manual
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
82
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
83
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
84 trigger-nightly-build:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
85 extends: .trigger
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
86 stage: nightly-trigger
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
87 rules:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
88 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
89 when: manual
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
90 allow_failure: true
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
91 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
92 when: never
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
93
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
94 .build-wheel:
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
95 extends: .all
52200
94ded8440db6 ci: use a pre-setup many-linux image to build wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52199
diff changeset
96 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-c:v3.0"
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
97 stage: build
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
98 variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
99 WHEEL_TYPE: ""
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
100 FLAVOR: ""
52198
2c4283c9fa93 setup: add a way to force the setup to translate (or fail)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52197
diff changeset
101 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
52199
d22b6d6e02e1 ci: use smaller VM to build wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52198
diff changeset
102 CI_CLEVER_CLOUD_FLAVOR: "XS"
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
103 script:
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
104 - PLATFORM=`/opt/python/cp313-cp313/bin/python -c 'import sys; print(sys.platform)'`
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
105 - echo $WHEEL_TYPE
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
106 - test -n "$WHEEL_TYPE"
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
107 - echo $FLAVOR
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
108 - mkdir -p wheels/$PLATFORM/$WHEEL_TYPE/$BUILD_PY_ID
52243
4d825ad10840 wheels: factor the core of Linux wheel building into a script
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52242
diff changeset
109 - contrib/build-one-linux-wheel.sh $BUILD_PY_ID wheels/$PLATFORM/$WHEEL_TYPE/$BUILD_PY_ID
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
110 artifacts:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
111 paths:
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
112 - wheels/
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
113 expire_in: 1 week
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
114
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
115
52275
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
116 # build linux wheel for amd64
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
117 build-c-wheel:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
118 extends: .build-wheel
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
119 variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
120 WHEEL_TYPE: "c"
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
121 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
122 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
123 - BUILD_PY_ID:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
124 - cp38-cp38
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
125 - cp39-cp39
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
126 - cp310-cp310
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
127 - cp311-cp311
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
128 - cp312-cp312
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
129 - cp313-cp313
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
130
52265
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
131 trigger-wheel-musl:
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
132 extends: .trigger
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
133 stage: build
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
134 rules:
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
135 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
136 when: never
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
137 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
138 when: manual
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
139 allow_failure: true
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
140
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
141 build-c-wheel-musl:
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
142 extends: build-c-wheel
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
143 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-musl-c:v3.0"
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
144 rules:
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
145 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
146 needs:
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
147 - trigger-nightly-build
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
148 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
149 needs:
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
150 - "trigger-wheel-musl"
a1f2e25b6b38 wheel: also build the musl wheel in the ci
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52258
diff changeset
151
52267
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
152 trigger-wheel-i686:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
153 extends: .trigger
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
154 stage: build
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
155 rules:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
156 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
157 when: never
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
158 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
159 when: manual
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
160 allow_failure: true
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
161
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
162 build-c-wheel-i686:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
163 extends: build-c-wheel
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
164 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-i686-c:v3.0"
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
165 rules:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
166 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
167 needs:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
168 - trigger-nightly-build
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
169 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
170 needs:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
171 - "trigger-wheel-i686"
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
172
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
173 trigger-wheel-i686-musl:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
174 extends: .trigger
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
175 stage: build
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
176 rules:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
177 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
178 when: never
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
179 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
180 when: manual
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
181 allow_failure: true
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
182
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
183 build-c-wheel-i686-musl:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
184 extends: build-c-wheel
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
185 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-i686-musl-c:v3.0"
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
186 rules:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
187 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
188 needs:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
189 - trigger-nightly-build
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
190 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
191 needs:
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
192 - "trigger-wheel-i686-musl"
4550c024329d wheels: also build the i686 wheel in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52265
diff changeset
193
52275
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
194 trigger-wheel-arm64:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
195 extends: .trigger
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
196 stage: build
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
197 rules:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
198 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
199 when: never
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
200 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
201 when: manual
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
202 allow_failure: true
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
203
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
204 build-c-wheel-arm64:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
205 extends: build-c-wheel
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
206 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-arm64-c:v3.0"
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
207 tags:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
208 - arm64
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
209 rules:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
210 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
211 needs:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
212 - trigger-nightly-build
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
213 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
214 needs:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
215 - "trigger-wheel-arm64"
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
216
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
217 trigger-wheel-arm64-musl:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
218 extends: .trigger
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
219 stage: build
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
220 rules:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
221 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
222 when: never
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
223 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
224 when: manual
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
225 allow_failure: true
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
226
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
227 build-c-wheel-arm64-musl:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
228 extends: build-c-wheel
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
229 image: "registry.heptapod.net/mercurial/ci-images/core-wheel-arm64-musl-c:v3.0"
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
230 tags:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
231 - arm64
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
232 rules:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
233 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
234 needs:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
235 - trigger-nightly-build
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
236 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
237 needs:
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
238 - "trigger-wheel-arm64-musl"
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
239
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
240 .runtests:
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
241 extends: .all
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
242 stage: tests
52209
74a9fbc1b574 ci: move some variables closer to their usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52208
diff changeset
243 variables:
74a9fbc1b574 ci: move some variables closer to their usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52208
diff changeset
244 SHOW_VERSION_OF: "$PYTHON"
74a9fbc1b574 ci: move some variables closer to their usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52208
diff changeset
245 TEST_HGTESTS_ALLOW_NETIO: "0"
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
246 FILTER: ""
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
247 FLAVOR: ""
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
248 RUNTEST_ARGS: ""
46244
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
diff changeset
249 # The runner made a clone as root.
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
diff changeset
250 # 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: 46146
diff changeset
251 before_script:
51712
e153995011b7 heptapod-ci: move version prints closer to the start
Raphaël Gomès <rgomes@octobus.net>
parents: 51700
diff changeset
252 - echo "python used, $PYTHON"
52002
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51994
diff changeset
253 - for tool in $SHOW_VERSION_OF ; do echo '#' version of $tool; $tool --version; done
52211
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
254 - 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: 52210
diff changeset
255 - 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: 52210
diff changeset
256 - 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: 52210
diff changeset
257 - cd "${TMP_WORK_DIR}"/mercurial-ci/
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
258 - ls -1 tests/test-check-*.* > "${TMP_WORK_DIR}"/check-tests.txt
44249
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
259 script:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
260 - echo "$TEST_HGTESTS_ALLOW_NETIO"
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
261 - echo "$RUNTEST_ARGS"
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
262 - echo "$FILTER"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
263 - echo "$FLAVOR"
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
264 - echo "$WHEEL_TYPE"
52213
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52212
diff changeset
265 - 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: 52212
diff changeset
266 - PORT_ARG="--port $PORT_START"
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52212
diff changeset
267 - echo $PORT_ARG
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
268 - PLATFORM=`$PYTHON -c 'import sys; print(sys.platform)'`
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
269 - echo $PLATFORM
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
270 - WHEEL_ARG=""
52216
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52214
diff changeset
271 - SHARDING_ARGS=""
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
272 - if test -n "$WHEEL_TYPE"; then
52203
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
273 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: 52201
diff changeset
274 echo "$PY_TAG";
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52201
diff changeset
275 test -n "PY_TAG";
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
276 WHEEL="`ls -1 $CI_PROJECT_DIR/wheels/$PLATFORM/$WHEEL_TYPE/$PY_TAG/*.whl`";
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
277 test -n "$WHEEL";
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
278 echo installing from $WHEEL;
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
279 WHEEL_ARG="--hg-wheel $WHEEL";
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
280 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: 52209
diff changeset
281 FLAVOR="";
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
282 else
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
283 echo installing from source;
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
284 fi;
52216
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52214
diff changeset
285 - 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: 52214
diff changeset
286 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: 52214
diff changeset
287 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: 52214
diff changeset
288 echo "sharding... $SHARDING_ARGS";
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52214
diff changeset
289 fi
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
290 - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
291 "$PYTHON" tests/run-tests.py
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
292 --color=always
52213
63ad6b0c2b6a ci: adjust the starting port range to runner concurrency
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52212
diff changeset
293 $PORT_ARG
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
294 $WHEEL_ARG
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
295 $FLAVOR
52216
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52214
diff changeset
296 $SHARDING_ARGS
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
297 $FILTER
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
298 $RUNTEST_ARGS;
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
299
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
300 checks:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
301 extends: .runtests
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
302 stage: checks
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
303 variables:
52002
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51994
diff changeset
304 SHOW_VERSION_OF: "$PYTHON black clang-format"
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
305 RUNTEST_ARGS: "--time"
52211
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
306 FILTER: "--test-list ${TMP_WORK_DIR}/check-tests.txt"
49945
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49506
diff changeset
307 CI_CLEVER_CLOUD_FLAVOR: S
44252
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44251
diff changeset
308
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
309 rust-cargo-test:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
310 extends: .all
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
311 stage: checks
44252
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44251
diff changeset
312 script:
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44251
diff changeset
313 - make rust-tests
49940
86958104b6ca heptapod-ci: add `clippy` to the CI
Raphaël Gomès <rgomes@octobus.net>
parents: 49654
diff changeset
314 - make cargo-clippy
44252
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44251
diff changeset
315 variables:
49945
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49506
diff changeset
316 CI_CLEVER_CLOUD_FLAVOR: S
44252
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44251
diff changeset
317
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
318 .runtests-no-check:
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
319 extends: .runtests
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
320 variables:
52211
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
321 FILTER: "--blacklist ${TMP_WORK_DIR}/check-tests.txt"
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
322 TEST_HGTESTS_ALLOW_NETIO: "1"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
323
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
324 .test-c:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
325 extends: .runtests-no-check
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
326 variables:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
327 FLAVOR: "--no-rust"
44254
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
328
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
329 test-c:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
330 extends: .test-c
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
331 needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
332 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
333 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
334 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
335 - BUILD_PY_ID: "cp311-cp311"
52151
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
336 variables:
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
337 WHEEL_TYPE: "c"
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
338
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
339 test-pure:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
340 extends: .runtests-no-check
44254
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
341 variables:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
342 FLAVOR: "--pure"
44255
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44254
diff changeset
343
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
344 test-rust:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
345 extends: .runtests-no-check
44255
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44254
diff changeset
346 variables:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
347 HGWITHRUSTEXT: "cpython"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
348 FLAVOR: "--rust"
44936
aa568b6c6a10 heptapod-ci: also run tests for chg on python 2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44577
diff changeset
349
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
350 test-rhg:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
351 extends: .runtests-no-check
46755
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
352 variables:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
353 HGWITHRUSTEXT: "cpython"
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
354 FLAVOR: "--rust --rhg"
46755
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
355
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
356 test-chg:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
357 extends: .runtests-no-check
46146
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
358 variables:
52210
b3d6afa6ebbf ci: rationalize variable usage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52209
diff changeset
359 FLAVOR: "--chg"
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
360
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
361
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
362 trigger-pycompat:
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
363 extends: .trigger
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
364 stage: py-version-compat
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
365 rules:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
366 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
367 when: on_success
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
368 needs:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
369 - trigger-nightly-build
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
370 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
371 when: manual
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
372 allow_failure: true
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
373
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
374 .test-c-pycompat:
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
375 extends: .test-c
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
376 stage: py-version-compat
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
377 variables:
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
378 WHEEL_TYPE: "c"
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
379
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
380 # 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: 51835
diff changeset
381 # 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: 51835
diff changeset
382 # 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: 51835
diff changeset
383 test-3.8-c:
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
384 extends: .test-c-pycompat
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
385 variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
386 PYTHON: python3.8
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
387 needs:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
388 - job: trigger-pycompat
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
389 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
390 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
391 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
392 - BUILD_PY_ID: "cp38-cp38"
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
393
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
394 test-3.12-c:
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
395 extends: .test-c-pycompat
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
396 variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
397 PYTHON: python3.12
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
398 needs:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
399 - job: trigger-pycompat
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
400 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
401 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
402 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
403 - BUILD_PY_ID: "cp312-cp312"
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
404
51847
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
405 test-3.12-rust:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
406 extends: test-rust
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
407 stage: py-version-compat
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
408 needs:
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
409 - trigger-pycompat
51847
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
410 variables:
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
411 PYTHON: python3.12
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
412
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
413 test-3.13-c:
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
414 extends: .test-c-pycompat
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
415 variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
416 PYTHON: python3.13
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
417 needs:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
418 - job: trigger-pycompat
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
419 - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
420 parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
421 matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
422 - BUILD_PY_ID: "cp313-cp313"
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
423
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
424 test-3.13-rust:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
425 extends: test-rust
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
426 stage: py-version-compat
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
427 needs:
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
428 - trigger-pycompat
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
429 variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
430 PYTHON: python3.13
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
431
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
432 check-pytype:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
433 extends: test-rust
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
434 stage: checks
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
435 before_script:
51713
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51712
diff changeset
436 - 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: 51712
diff changeset
437 - echo "PATH, $PATH"
52211
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
438 - 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: 52210
diff changeset
439 - 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: 52210
diff changeset
440 - cd "${TMP_WORK_DIR}"/mercurial-ci/
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
441 - make local PYTHON=$PYTHON
49653
556efeea6dbf ci: run the script to add vendored type stubs to typeshed
Matt Harbison <matt_harbison@yahoo.com>
parents: 49506
diff changeset
442 - ./contrib/setup-pytype.sh
49502
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
443 script:
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
444 - echo "Entering script section"
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
445 - sh contrib/check-pytype.sh
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
446
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
447 # `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: 47081
diff changeset
448 # 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: 47081
diff changeset
449 # 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: 47081
diff changeset
450 # 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: 47081
diff changeset
451 # that satisfies the various shebang lines and delegates to `py -3`.
52226
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
452
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
453 .windows:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
454 extends: .all
48522
b52cf5063865 heptapod-ci: make Windows jobs manual again
Raphaël Gomès <rgomes@octobus.net>
parents: 48328
diff changeset
455 when: manual # we don't have any Windows runners anymore at the moment
52226
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
456 tags:
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
457 - windows
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
458 before_script:
52211
4762133a56b3 ci: abstract the of absolute /tmp/ path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52210
diff changeset
459 - 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: 47081
diff changeset
460 # TODO: find/install cvs, bzr, perforce, gpg, sqlite3
52226
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
461 variables:
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
462 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: 47081
diff changeset
463
52233
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
464 # 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: 52231
diff changeset
465 trigger-wheel-windows:
52249
16e5de783a1b ci: adds a trigger for all pycompat jobs
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52248
diff changeset
466 extends: .trigger
52233
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
467 stage: build
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
468 rules:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
469 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
470 when: never
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
471 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
472 when: manual
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
473 allow_failure: true
52233
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
474
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
475 build-c-wheel-windows:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
476 extends: .windows
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
477 stage: build
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
478 # wait for someone to click on "trigger-wheel-windows"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
479 when: on_success
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
480 needs:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
481 rules:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
482 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
483 needs:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
484 - trigger-nightly-build
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
485 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
486 needs:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
487 - "trigger-wheel-windows"
52237
4602e90207f3 wheel: enforce that translation being build for windows wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52236
diff changeset
488 variables:
4602e90207f3 wheel: enforce that translation being build for windows wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52236
diff changeset
489 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
52233
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
490 script:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
491 - echo "Entering script section"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
492 - echo "python used, $Env:PYTHON"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
493 - Invoke-Expression "$Env:PYTHON -V"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
494 - echo "$Env:RUNTEST_ARGS"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
495 - echo "$Env:TMP"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
496 - echo "$Env:TEMP"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
497 - "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: 52231
diff changeset
498 artifacts:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
499 paths:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
500 - wheels
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
501 expire_in: 1 week
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
502 parallel:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
503 matrix:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
504 # "cp39" is first as it unlock the tests
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
505 - CIBW_BUILD:
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
506 - "cp39-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
507 - "cp38-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
508 - "cp310-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
509 - "cp311-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
510 - "cp312-*"
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
511 - "cp313-*"
52234
6c777d25e8a6 wheel: explicitly list built architecture
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52233
diff changeset
512 CIBW_ARCHS:
6c777d25e8a6 wheel: explicitly list built architecture
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52233
diff changeset
513 - "AMD64"
6c777d25e8a6 wheel: explicitly list built architecture
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52233
diff changeset
514 - "x86"
52248
084e7ae69ae4 wheel: build windows wheel for ARM64 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52243
diff changeset
515 - CIBW_BUILD:
084e7ae69ae4 wheel: build windows wheel for ARM64 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52243
diff changeset
516 - "cp311-*"
084e7ae69ae4 wheel: build windows wheel for ARM64 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52243
diff changeset
517 - "cp312-*"
084e7ae69ae4 wheel: build windows wheel for ARM64 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52243
diff changeset
518 - "cp313-*"
084e7ae69ae4 wheel: build windows wheel for ARM64 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52243
diff changeset
519 CIBW_ARCHS:
084e7ae69ae4 wheel: build windows wheel for ARM64 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52243
diff changeset
520 - "ARM64"
52233
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
521
e25e4647437b wheel: build Windows wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52231
diff changeset
522
52226
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
523 .windows-runtests:
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
524 extends: .windows
b25fc1f25edf ci: again common element into a `.windows` template
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52225
diff changeset
525 stage: platform-compat
52236
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52235
diff changeset
526 # 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: 52235
diff changeset
527 # 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: 52235
diff changeset
528 # associated wheel is ready.
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52235
diff changeset
529 when: on_success
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52235
diff changeset
530 parallel: 20
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
531 script:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
532 - echo "Entering script section"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
533 - echo "python used, $Env:PYTHON"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
534 - Invoke-Expression "$Env:PYTHON -V"
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
535 - echo "$Env:HGTESTS_ALLOW_NETIO"
52235
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
536 - echo "$Env:WHEEL_ARG"
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
537 - echo "$Env:FLAVOR"
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
538 - echo "$Env:FILTER"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
539 - echo "$Env:RUNTEST_ARGS"
47806
d5d46dcd356b windows-ci: clean up the Heptapod CI file now that the baseline is solid
Raphaël Gomès <rgomes@octobus.net>
parents: 47792
diff changeset
540 - 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: 47792
diff changeset
541 - echo "$Env:TEMP"
52228
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52227
diff changeset
542 # 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: 52227
diff changeset
543 # it for now
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52227
diff changeset
544 - 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: 47081
diff changeset
545
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
546 - 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: 52226
diff changeset
547 --login -c 'cd "$OLDPWD"
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
548 && 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: 52226
diff changeset
549 $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: 52226
diff changeset
550 --color=always
52235
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
551 $WHEEL_ARG
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
552 $FLAVOR
52229
4bbb4fc9af3b ci: adjust port range on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52228
diff changeset
553 --port `expr 19051 + 1009 "*" $CI_CONCURRENT_ID`
52236
48f772a5c476 ci: shard the tests on windows too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52235
diff changeset
554 --shard-index $CI_NODE_INDEX --shard-total $CI_NODE_TOTAL
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
555 $FILTER
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
556 $RUNTEST_ARGS;
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
557 '
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
558 variables:
52235
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
559 WHEEL_ARG: ""
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
560 RUNTEST_ARGS: ""
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
561 FLAVOR: ""
52228
be1f06902861 windows: skip test-clonebundles-autogen.t in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52227
diff changeset
562 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: 47081
diff changeset
563
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
564 windows:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
565 extends: .windows-runtests
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
566 variables:
52250
05953a37c608 ci: let the Windows runner decide how many job they want to run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52249
diff changeset
567 RUNTEST_ARGS: ""
52235
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
568 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: 52234
diff changeset
569 needs:
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
570 - job: build-c-wheel-windows
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
571 parallel:
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
572 matrix:
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
573 - CIBW_BUILD: "cp39-*"
8cacf7952f14 wheel: test the built wheel in the windows tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52234
diff changeset
574 CIBW_ARCHS: "AMD64"
47827
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
575
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
576 windows-pyox:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
577 extends: .windows-runtests
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
578 when: manual # pyoxidizer builds seem broken with --no-use-pep517
47827
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
579 variables:
52227
f514c5acfdd6 ci: split the windows runtest invocation into more granular variables
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52226
diff changeset
580 FLAVOR: "--pyoxidized"
52014
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
581
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
582 macos:
52208
75bc7557e49f ci: use extends instead of <<: *x
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52207
diff changeset
583 extends: .test-c
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
584 stage: platform-compat
52216
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52214
diff changeset
585 # 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: 52214
diff changeset
586 # 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: 52214
diff changeset
587 # for tests.
fa58f4f97337 ci: shard the test run on mac os X
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52214
diff changeset
588 parallel: 10
52014
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
589 tags:
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
590 - macos
52207
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52206
diff changeset
591 variables:
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52206
diff changeset
592 WHEEL_TYPE: "c"
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52206
diff changeset
593 needs:
50fa42a2a79a ci: use the macos wheel to run tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52206
diff changeset
594 - build-c-wheel-macos
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
595
52231
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52229
diff changeset
596 # 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: 52229
diff changeset
597 # 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: 52229
diff changeset
598 # version is useful and match what we do with Linux.
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
599 #
52231
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52229
diff changeset
600 # CIBW_SKIP is set globally at the start of the file. See comment there.
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
601 #
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
602 # 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: 52203
diff changeset
603 # 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: 52203
diff changeset
604 build-c-wheel-macos:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
605 rules:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
606 - if: $CI_COMMIT_BRANCH =~ $RE_BRANCH
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
607 needs:
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
608 - trigger-nightly-build
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
609 - if: $CI_COMMIT_BRANCH =~ $RE_TOPIC
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
610 when: manual # avoid overloading the CI by default
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
611 allow_failure: true
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
612 stage: build
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
613 tags:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
614 - macos
52219
4496f059cf5c wheel: enforce that translation being build for macos wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52216
diff changeset
615 variables:
4496f059cf5c wheel: enforce that translation being build for macos wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52216
diff changeset
616 MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
617 script:
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
618 - PLATFORM=`$PYTHON -c 'import sys; print(sys.platform)'`
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
619 - rm -rf tmp-wheels
52231
d0e728b0db0e wheel: assign CIBW_SKIP globally
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52229
diff changeset
620 - cibuildwheel --output-dir tmp-wheels/
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
621 - for py_version in cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312 cp313-cp313; do
52241
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
622 mkdir -p wheels/$PLATFORM/c/$py_version/;
05addf266f6f wheel: add a platform level to the wheel directories
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52237
diff changeset
623 mv tmp-wheels/*$py_version*.whl wheels/$PLATFORM/c/$py_version/;
52206
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
624 done
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
625 - rm -rf tmp-wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
626 artifacts:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
627 paths:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
628 - wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52203
diff changeset
629 expire_in: 1 week
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
630
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
631
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
632 .nightly_build_step:
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
633 extends: .all
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
634 stage: upload
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
635 rules:
52256
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
636 - if: '$CI_COMMIT_BRANCH =~ $RE_BRANCH'
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
637 # note that at the time of writing this, this job depends on multiple
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
638 # manual one. So it will not run by default, but will automatically run
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
639 # if the manual jobs are triggered.
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
640 #
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
641 # Also beware that "on_success" will ignore failure of manual test we
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
642 # directly depends on. This currently relevant for the "test-3.x-c"
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
643 # tests.
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
644 when: on_success
52256
ff1d4b2df8bd ci: abstract the branch matching regexp
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52250
diff changeset
645 - if: '$CI_COMMIT_BRANCH =~ $RE_TOPIC'
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
646 when: never
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
647
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
648 # a dummy job that gather greatly parallel object into one.
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
649 #
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
650 # It exists because gitlab-ci has a "50 jobs" limit on "needs" entries.
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
651 # (yes, this is sad)
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
652 #
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
653 .sink:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
654 extends:
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
655 - .nightly_build_step
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
656 - .dummy
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
657
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
658 test-result-linux:
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
659 extends: .sink
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
660 needs:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
661 - test-c
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
662 - test-3.8-c
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
663 - test-3.12-c
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
664 - test-3.13-c
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
665
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
666 test-result-macos:
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
667 extends: .sink
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
668 needs:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
669 - macos
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
670
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
671 test-result-windows:
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
672 extends: .sink
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
673 needs:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
674 - windows
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
675
52276
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
676 wheel-result-linux:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
677 extends: .sink
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
678 needs:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
679 - build-c-wheel
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
680 - build-c-wheel-musl
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
681 - build-c-wheel-i686
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
682 - build-c-wheel-i686-musl
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
683 - build-c-wheel-arm64
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
684 - build-c-wheel-arm64-musl
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
685 artifacts:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
686 paths:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
687 - wheels
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
688 expire_in: 1 week
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
689
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
690 wheel-result-windows:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
691 extends: .sink
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
692 needs:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
693 - build-c-wheel-windows
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
694 artifacts:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
695 paths:
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
696 - wheels
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
697 expire_in: 1 week
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
698
52257
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
699 # Upload nightly build wheel on the heptapod registry on test success
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
700 #
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
701 # At the time this task is added, since the mac wheels are built on shell
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
702 # runner, those nightly are not be considered fully secured.
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
703 #
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
704 # In addition, since any job can upload package, pretty much anyone with CI
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
705 # access can upload anything pretending to be any version. To fix it we would
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
706 # have to prevent the CI token to upload to the registry and have dedicated
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
707 # credential accessible only from protected branches.
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
708 upload-wheel-nightly:
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
709 extends: .nightly_build_step
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
710 image: "registry.heptapod.net/mercurial/ci-images/twine:v3.0"
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
711 # because we don't want to upload only half of a wheel
3f7c7a855af0 ci: add "sink" for parallel tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52256
diff changeset
712 interruptible: false
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
713 needs:
52276
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
714 - wheel-result-linux
13be751218e0 ci: add sink for wheels too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52275
diff changeset
715 - wheel-result-windows
52275
843c250fb2de wheel: also build wheel for linux arm64 in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52267
diff changeset
716 - build-c-wheel-macos
52258
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
717 - test-result-linux
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
718 - test-result-macos
b65f11f49375 ci: for branches, use a single trigger
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52257
diff changeset
719 - test-result-windows
52242
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
720 # It would be nice to be able to restrict that a bit to protected branch only
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
721 variables:
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
722 TWINE_USERNAME: gitlab-ci-token
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
723 TWINE_PASSWORD: $CI_JOB_TOKEN
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
724 script:
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
725 - twine
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
726 upload
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
727 --verbose
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
728 --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
729 wheels/*/*/*/*.whl
b8efa9013d3f wheel: add a job uploading nightly build
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52241
diff changeset
730 wheels/*/*.whl