contrib/heptapod-ci.yml
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 15 Oct 2024 05:17:37 +0200
branchstable
changeset 52172 97d86d5b16f8
parent 52169 5ea21e0c28aa
child 52173 50fa42a2a79a
permissions -rw-r--r--
wheel: build mac os wheel through the CI Let's start building wheel for mac os X too.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     1
# Don't run pipelines on branch "merge", since we're fast-forward only.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     2
# Gitlab sees a new branch (since e.g. `topic/stable/my-topic` becomes
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     3
# `branch/stable`), but the hash hasn't changed. There is no reason to
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     4
# re-run the CI in our case, since we haven't built up any specific automation.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     5
# Right now it's just wasted CI and developer time.
50736
f5b02cce82ff heptapod-ci: remove push exception for named branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50735
diff changeset
     6
# One can still run the pipeline manually via the web interface,
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     7
# like in the case of releases, to make *extra* sure that the actual branch
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     8
# has succeeded.
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
     9
workflow:
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    10
  rules:
50736
f5b02cce82ff heptapod-ci: remove push exception for named branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50735
diff changeset
    11
    - if: $CI_COMMIT_BRANCH =~ /^branch\/.*/ && $CI_PIPELINE_SOURCE != "web"
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    12
      when: never
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    13
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
50738
929655c0e613 heptapod-ci: turn off pipelines for merge request events
Raphaël Gomès <rgomes@octobus.net>
parents: 50737
diff changeset
    14
      when: never
929655c0e613 heptapod-ci: turn off pipelines for merge request events
Raphaël Gomès <rgomes@octobus.net>
parents: 50737
diff changeset
    15
    - if: $CI_PIPELINE_SOURCE == "push"
50737
1aba446bf8e6 heptapod-ci: always make the default run condition explicit
Raphaël Gomès <rgomes@octobus.net>
parents: 50736
diff changeset
    16
      when: always
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    17
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    18
      when: never
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    19
    - if: $CI_COMMIT_BRANCH
50737
1aba446bf8e6 heptapod-ci: always make the default run condition explicit
Raphaël Gomès <rgomes@octobus.net>
parents: 50736
diff changeset
    20
      when: always
50734
429880fd984c heptapod-ci: don't run pipelines for topic-less branches
Raphaël Gomès <rgomes@octobus.net>
parents: 50484
diff changeset
    21
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
    22
stages:
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
    23
  - build
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
    24
  - checks
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
    25
  - tests
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
    26
  - platform-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
    27
  - py-version-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
    28
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
    29
46323
723d241543b0 heptapod-ci: allow testing with docker image other than :latest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46256
diff changeset
    30
image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG
44166
8b1dd3f42396 heptapod-ci: add a basic file to be able to run tests with heptapod
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
    32
variables:
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
    33
    PYTHON: python
51772
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51771
diff changeset
    34
    HG_CI_IMAGE_TAG: "v2.1"
46715
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46494
diff changeset
    35
    TEST_HGTESTS_ALLOW_NETIO: "0"
52032
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52024
diff changeset
    36
    SHOW_VERSION_OF: "$PYTHON"
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
    37
47820
f6879956a386 ci: add a "all" template to easily control "when" test run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47805
diff changeset
    38
.all_template: &all
48865
477b5145e1a0 ci: do not trigger phabricator for merge-request
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48858
diff changeset
    39
  when: on_success
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
    40
  needs: []
47820
f6879956a386 ci: add a "all" template to easily control "when" test run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47805
diff changeset
    41
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    42
.build-wheel: &wheel
52166
94ded8440db6 ci: use a pre-setup many-linux image to build wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52165
diff changeset
    43
  image: "registry.heptapod.net/mercurial/ci-images/core-wheel-x86_64-c:v3.0"
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    44
  <<: *all
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    45
  stage: build
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    46
  variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    47
    WHEEL_TYPE: ""
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    48
    FLAVOR: ""
52164
2c4283c9fa93 setup: add a way to force the setup to translate (or fail)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52163
diff changeset
    49
    MERCURIAL_SETUP_FORCE_TRANSLATIONS: "1"
52165
d22b6d6e02e1 ci: use smaller VM to build wheel
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52164
diff changeset
    50
    CI_CLEVER_CLOUD_FLAVOR: "XS"
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    51
  before_script:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    52
    - echo $WHEEL_TYPE
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    53
    - test -n "$WHEEL_TYPE"
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    54
    - echo $FLAVOR
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    55
    - mkdir -p wheels/$WHEEL_TYPE/$BUILD_PY_ID
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    56
  script:
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    57
    - /opt/python/$BUILD_PY_ID/bin/python setup.py bdist_wheel --dist-dir tmp-wheelhouse
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    58
    - auditwheel repair tmp-wheelhouse/*.whl -w wheels/$WHEEL_TYPE/$BUILD_PY_ID
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    59
  artifacts:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    60
    paths:
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    61
      - wheels/$WHEEL_TYPE/$BUILD_PY_ID
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    62
    expire_in: 1 week
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    63
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    64
build-c-wheel:
52163
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    65
  <<: *wheel
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    66
  variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52151
diff changeset
    67
    WHEEL_TYPE: "c"
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    68
  parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    69
    matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    70
      - BUILD_PY_ID:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    71
          - cp38-cp38
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    72
          - cp39-cp39
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    73
          - cp310-cp310
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    74
          - cp311-cp311
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    75
          - cp312-cp312
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
    76
          - cp313-cp313
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    77
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    78
# TODO: We should select the wheel compatible with the python (and plateform)
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    79
# we use. This is necessary to build multiple wheel.
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
    80
.runtests_template: &runtests
47820
f6879956a386 ci: add a "all" template to easily control "when" test run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47805
diff changeset
    81
    <<: *all
45974
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45912
diff changeset
    82
    stage: tests
46244
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    83
    # The runner made a clone as root.
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    84
    # We make a new clone owned by user used to run the step.
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    85
    before_script:
51771
e153995011b7 heptapod-ci: move version prints closer to the start
Raphaël Gomès <rgomes@octobus.net>
parents: 51759
diff changeset
    86
      - echo "python used, $PYTHON"
52032
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52024
diff changeset
    87
      - for tool in $SHOW_VERSION_OF ; do echo '#' version of $tool; $tool --version; done
52041
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
    88
      - rm -rf /tmp/mercurial-ci/  # Clean slate if not using containers
46244
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    89
      - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    90
      - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    91
      - cd /tmp/mercurial-ci/
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46147
diff changeset
    92
      - ls -1 tests/test-check-*.* > /tmp/check-tests.txt
44166
8b1dd3f42396 heptapod-ci: add a basic file to be able to run tests with heptapod
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
    script:
44170
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44169
diff changeset
    94
        - echo "$RUNTEST_ARGS"
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    95
        - echo "$WHEEL_TYPE"
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    96
        - WHEEL=""
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
    97
        - if test -n "$WHEEL_TYPE"; then
52169
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
    98
             PY_TAG=`$PYTHON -c 'import sys; v=sys.version_info; t=f"cp{v.major}{v.minor}"; print(f"{t}-{t}")'`;
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
    99
             echo "$PY_TAG";
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
   100
             test -n "PY_TAG";
5ea21e0c28aa ci: automatically compute the python tag we use to identify tag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52167
diff changeset
   101
             WHEEL="`ls -1 $CI_PROJECT_DIR/wheels/$WHEEL_TYPE/$PY_TAG/*.whl`";
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   102
             test -n "$WHEEL";
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   103
          fi
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   104
        - if test -n "$WHEEL"; then
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   105
            echo installing from $WHEEL;
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   106
            HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" "$PYTHON" tests/run-tests.py --hg-wheel $WHEEL --color=always $RUNTEST_ARGS;
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   107
          else
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   108
            echo installing from source;
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   109
            HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS;
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   110
          fi
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
   111
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   112
checks:
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
   113
    <<: *runtests
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   114
    stage: checks
44168
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44167
diff changeset
   115
    variables:
52032
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52024
diff changeset
   116
        SHOW_VERSION_OF: "$PYTHON black clang-format"
44170
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44169
diff changeset
   117
        RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
49639
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49512
diff changeset
   118
        CI_CLEVER_CLOUD_FLAVOR: S
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
   119
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   120
rust-cargo-test:
49220
a17ffde1e71b ci: have rust-cargo-test inherit from all
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 49214
diff changeset
   121
    <<: *all
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   122
    stage: checks
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
   123
    script:
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
   124
        - make rust-tests
50013
86958104b6ca heptapod-ci: add `clippy` to the CI
Raphaël Gomès <rgomes@octobus.net>
parents: 49770
diff changeset
   125
        - make cargo-clippy
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
   126
    variables:
49639
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49512
diff changeset
   127
        CI_CLEVER_CLOUD_FLAVOR: S
44169
5fd43c788943 heptapod-ci: also run the dedicated rust test for the rust code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44168
diff changeset
   128
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   129
.test-c: &test_c
44170
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44169
diff changeset
   130
    <<: *runtests
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44169
diff changeset
   131
    variables:
44502
b3991b72d9f1 heptapod-ci: use the new `--rust/--no-rust` flag to run the tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44198
diff changeset
   132
        RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
46715
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46494
diff changeset
   133
        TEST_HGTESTS_ALLOW_NETIO: "1"
44171
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44170
diff changeset
   134
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   135
test-c:
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   136
    <<: *test_c
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   137
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   138
      - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   139
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   140
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   141
            - BUILD_PY_ID: "cp311-cp311"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   142
52147
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   143
    variables:
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   144
        WHEEL_TYPE: "c"
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   145
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt"
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   146
        TEST_HGTESTS_ALLOW_NETIO: "1"
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52146
diff changeset
   147
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   148
test-pure:
44171
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44170
diff changeset
   149
    <<: *runtests
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44170
diff changeset
   150
    variables:
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44170
diff changeset
   151
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
44172
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44171
diff changeset
   152
51885
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   153
test-rust: &test_rust
44172
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44171
diff changeset
   154
    <<: *runtests
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44171
diff changeset
   155
    variables:
541a509a47a8 heptapod-ci: add a job to test the rust version of Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44171
diff changeset
   156
        HGWITHRUSTEXT: cpython
44502
b3991b72d9f1 heptapod-ci: use the new `--rust/--no-rust` flag to run the tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44198
diff changeset
   157
        RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
44977
aa568b6c6a10 heptapod-ci: also run tests for chg on python 2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44586
diff changeset
   158
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   159
test-rhg:
46768
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
   160
    <<: *runtests
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
   161
    variables:
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
   162
        HGWITHRUSTEXT: cpython
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
   163
        RUNTEST_ARGS: "--rust --rhg --blacklist /tmp/check-tests.txt"
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46715
diff changeset
   164
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   165
test-chg:
46147
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46049
diff changeset
   166
    <<: *runtests
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46049
diff changeset
   167
    variables:
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46049
diff changeset
   168
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
47040
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   169
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   170
# note: we should probably get a full matrix for flavor × py-version, but this
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   171
# is a simple start to be able to check if we break the lowest supported
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   172
# version (and 3.12 have been giving us various troubles)
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   173
test-3.8-c:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   174
    <<: *test_c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   175
    stage: py-version-compat
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   176
    when: manual  # avoid overloading the CI by default
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   177
    variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   178
        PYTHON: python3.8
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   179
        WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   180
        RUNTEST_ARGS: " --blacklist /tmp/check-tests.txt"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   181
        TEST_HGTESTS_ALLOW_NETIO: "1"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   182
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   183
      - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   184
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   185
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   186
            - BUILD_PY_ID: "cp38-cp38"
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   187
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   188
test-3.12-c:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   189
    <<: *test_c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   190
    stage: py-version-compat
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   191
    when: manual  # avoid overloading the CI by default
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   192
    variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   193
        PYTHON: python3.12
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   194
        WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   195
        RUNTEST_ARGS: " --blacklist /tmp/check-tests.txt"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   196
        TEST_HGTESTS_ALLOW_NETIO: "1"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   197
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   198
      - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   199
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   200
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   201
            - BUILD_PY_ID: "cp312-cp312"
51884
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51876
diff changeset
   202
51885
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   203
test-3.12-rust:
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   204
    <<: *test_rust
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   205
    stage: py-version-compat
51885
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   206
    when: manual  # avoid overloading the CI by default
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   207
    variables:
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   208
        PYTHON: python3.12
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51884
diff changeset
   209
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   210
test-3.13-c:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   211
    <<: *test_c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   212
    stage: py-version-compat
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   213
    when: manual  # avoid overloading the CI by default
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   214
    variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   215
        PYTHON: python3.13
52167
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   216
        WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   217
        RUNTEST_ARGS: " --blacklist /tmp/check-tests.txt"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   218
        TEST_HGTESTS_ALLOW_NETIO: "1"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   219
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   220
      - job: build-c-wheel
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   221
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   222
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52166
diff changeset
   223
            - BUILD_PY_ID: "cp313-cp313"
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   224
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   225
test-3.13-rust:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   226
    <<: *test_rust
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   227
    stage: py-version-compat
52024
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   228
    when: manual  # avoid overloading the CI by default
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   229
    variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   230
        PYTHON: python3.13
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51993
diff changeset
   231
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   232
check-pytype:
52145
6f641ebe759e ci: unify the way `check-pytype` inherit the common setting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52042
diff changeset
   233
    <<: *test_rust
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   234
    stage: checks
47040
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   235
    before_script:
51772
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51771
diff changeset
   236
      - export PATH="/home/ci-runner/vendor/pyenv/pyenv-2.4.7-adf3c2bccf09cdb81febcfd15b186711a33ac7a8/shims:/home/ci-runner/vendor/pyenv/pyenv-2.4.7-adf3c2bccf09cdb81febcfd15b186711a33ac7a8/bin:$PATH"
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51771
diff changeset
   237
      - echo "PATH, $PATH"
47040
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   238
      - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   239
      - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   240
      - cd /tmp/mercurial-ci/
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   241
      - make local PYTHON=$PYTHON
49769
556efeea6dbf ci: run the script to add vendored type stubs to typeshed
Matt Harbison <matt_harbison@yahoo.com>
parents: 49512
diff changeset
   242
      - ./contrib/setup-pytype.sh
49422
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49287
diff changeset
   243
    script:
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49287
diff changeset
   244
      - echo "Entering script section"
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49287
diff changeset
   245
      - sh contrib/check-pytype.sh
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   246
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   247
# `sh.exe --login` sets a couple of extra environment variables that are defined
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   248
# in the MinGW shell, but switches CWD to /home/$username.  The previous value
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   249
# is stored in OLDPWD.  Of the added variables, MSYSTEM is crucial to running
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   250
# run-tests.py- it is needed to make run-tests.py generate a `python3` script
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   251
# that satisfies the various shebang lines and delegates to `py -3`.
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   252
.window_runtests_template: &windows_runtests
47820
f6879956a386 ci: add a "all" template to easily control "when" test run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47805
diff changeset
   253
    <<: *all
48345
b52cf5063865 heptapod-ci: make Windows jobs manual again
Raphaël Gomès <rgomes@octobus.net>
parents: 48326
diff changeset
   254
    when: manual  # we don't have any Windows runners anymore at the moment
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   255
    stage: platform-compat
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   256
    before_script:
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   257
      - C:/hgdev/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.* > C:/hgdev/tmp/check-tests.txt'
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   258
      # TODO: find/install cvs, bzr, perforce, gpg, sqlite3
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   259
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   260
    script:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   261
        - echo "Entering script section"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   262
        - echo "python used, $Env:PYTHON"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   263
        - Invoke-Expression "$Env:PYTHON -V"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   264
        - echo "$Env:RUNTEST_ARGS"
47801
d5d46dcd356b windows-ci: clean up the Heptapod CI file now that the baseline is solid
Raphaël Gomès <rgomes@octobus.net>
parents: 47791
diff changeset
   265
        - echo "$Env:TMP"
d5d46dcd356b windows-ci: clean up the Heptapod CI file now that the baseline is solid
Raphaël Gomès <rgomes@octobus.net>
parents: 47791
diff changeset
   266
        - echo "$Env:TEMP"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   267
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   268
        - C:/hgdev/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" $PYTHON tests/run-tests.py --color=always $RUNTEST_ARGS'
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   269
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   270
windows:
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   271
    <<: *windows_runtests
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   272
    when: manual
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   273
    tags:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   274
      - windows
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47040
diff changeset
   275
    variables:
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   276
        RUNTEST_ARGS: "-j 8 --blacklist C:/hgdev/tmp/check-tests.txt"
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   277
        PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe
47822
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
   278
49040
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48898
diff changeset
   279
windows-pyox:
47822
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
   280
    <<: *windows_runtests
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   281
    when: manual  # pyoxidizer builds seem broken with --no-use-pep517
47822
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
   282
    tags:
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
   283
      - windows
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47820
diff changeset
   284
    variables:
52151
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   285
        RUNTEST_ARGS: "--blacklist C:/hgdev/tmp/check-tests.txt --pyoxidized"
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52147
diff changeset
   286
        PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe
52041
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
   287
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
   288
macos:
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
   289
    <<: *test_c
52146
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52145
diff changeset
   290
    stage: platform-compat
52042
f9f41b3dcb64 ci: only use the macOS runner if manually invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 52041
diff changeset
   291
    when: manual  # avoid overloading the CI by default
52041
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
   292
    tags:
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52032
diff changeset
   293
      - macos
52172
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   294
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   295
# we use CIBW_SKIP="pp*" to prevent the building of pypy wheel that are neither
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   296
# needed nor working.
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   297
#
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   298
# We could use CIBW_BUILD="cp310-*" to only build the Python 3.10 wheel for now as
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   299
# this is the only one we need to test. However testing that build work on all version is useful and match what we do with Linux.
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   300
#
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   301
# The weird directory structure match the one we use for Linux to deal with the
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   302
# multiple jobs. (all this might be unnecessary)
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   303
build-c-wheel-macos:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   304
    when: manual  # avoid overloading the CI by default
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   305
    stage: build
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   306
    tags:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   307
      - macos
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   308
    script:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   309
      - rm -rf tmp-wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   310
      - CIBW_SKIP="pp*" cibuildwheel --output-dir tmp-wheels/
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   311
      - for py_version in cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312 cp313-cp313; do
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   312
          mkdir -p wheels/c/$py_version/;
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   313
          mv tmp-wheels/*$py_version*.whl wheels/c/$py_version/;
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   314
        done
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   315
      - rm -rf tmp-wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   316
    artifacts:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   317
      paths:
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   318
        - wheels
97d86d5b16f8 wheel: build mac os wheel through the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52169
diff changeset
   319
      expire_in: 1 week