contrib/heptapod-ci.yml
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 06 Nov 2024 16:40:58 +0100
branchstable
changeset 52201 7dd466f13f9b
parent 52200 94ded8440db6
child 52203 5ea21e0c28aa
permissions -rw-r--r--
ci: build (and use) wheel for all supported version We test wheel building for all supported version and use them where applicable The usage is more verbose than I wish because .gitlab-ci is not that great.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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:
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
    23
  - build
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
    24
  - checks
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
    25
  - tests
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
    26
  - platform-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
    27
  - py-version-compat
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
    28
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
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
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
    31
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    32
variables:
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    33
    PYTHON: python
51713
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51712
diff changeset
    34
    HG_CI_IMAGE_TAG: "v2.1"
46676
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46426
diff changeset
    35
    TEST_HGTESTS_ALLOW_NETIO: "0"
52002
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51994
diff changeset
    36
    SHOW_VERSION_OF: "$PYTHON"
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    37
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
    38
.all_template: &all
49181
477b5145e1a0 ci: do not trigger phabricator for merge-request
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 49161
diff changeset
    39
  when: on_success
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
    40
  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
    41
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
    42
.build-wheel: &wheel
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
    43
  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
    44
  <<: *all
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    45
  stage: build
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    46
  variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    47
    WHEEL_TYPE: ""
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    48
    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
    49
    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
    50
    CI_CLEVER_CLOUD_FLAVOR: "XS"
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    51
  before_script:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    52
    - echo $WHEEL_TYPE
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    53
    - test -n "$WHEEL_TYPE"
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    54
    - echo $FLAVOR
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    55
    - mkdir -p wheels/$WHEEL_TYPE/$BUILD_PY_ID
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    56
  script:
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
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: 52200
diff changeset
    58
    - auditwheel repair tmp-wheelhouse/*.whl -w wheels/$WHEEL_TYPE/$BUILD_PY_ID
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    59
  artifacts:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    60
    paths:
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    61
      - wheels/$WHEEL_TYPE/$BUILD_PY_ID
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    62
    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
    63
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
    64
build-c-wheel:
52197
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    65
  <<: *wheel
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    66
  variables:
c32b17e8f414 ci: pre-adjust some identation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52156
diff changeset
    67
    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
    68
  parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    69
    matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
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: 52200
diff changeset
    71
          - cp38-cp38
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    72
          - cp39-cp39
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    73
          - cp310-cp310
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    74
          - cp311-cp311
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    75
          - cp312-cp312
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    76
          - 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
    77
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
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: 52150
diff changeset
    79
# we use. This is necessary to build multiple wheel.
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    80
.runtests_template: &runtests
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
    81
    <<: *all
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
    82
    stage: tests
46244
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
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: 46146
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: 46146
diff changeset
    85
    before_script:
51712
e153995011b7 heptapod-ci: move version prints closer to the start
Raphaël Gomès <rgomes@octobus.net>
parents: 51700
diff changeset
    86
      - echo "python used, $PYTHON"
52002
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51994
diff changeset
    87
      - for tool in $SHOW_VERSION_OF ; do echo '#' version of $tool; $tool --version; done
52014
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
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: 46146
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: 46146
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: 46146
diff changeset
    91
      - cd /tmp/mercurial-ci/
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
diff changeset
    92
      - ls -1 tests/test-check-*.* > /tmp/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
    93
    script:
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
    94
        - echo "$RUNTEST_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
    95
        - echo "$WHEEL_TYPE"
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    96
        - echo $BUILD_PY_ID
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
    97
        - WHEEL=""
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
    98
        - if test -n "$WHEEL_TYPE"; then
52201
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
    99
             test -n "$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
   100
             WHEEL="`ls -1 $CI_PROJECT_DIR/wheels/$WHEEL_TYPE/$BUILD_PY_ID/*.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
   101
             test -n "$WHEEL";
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
   102
          fi
0de1895c2218 ci: build a wheel and use it to run c tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52150
diff changeset
   103
        - 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: 52150
diff changeset
   104
            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: 52150
diff changeset
   105
            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: 52150
diff changeset
   106
          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
   107
            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: 52150
diff changeset
   108
            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: 52150
diff changeset
   109
          fi
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
   110
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   111
checks:
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
   112
    <<: *runtests
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   113
    stage: checks
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
   114
    variables:
52002
22a50b7934d2 ci: display tool version more selectively
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51994
diff changeset
   115
        SHOW_VERSION_OF: "$PYTHON black clang-format"
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
   116
        RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
49945
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49506
diff changeset
   117
        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
   118
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   119
rust-cargo-test:
49188
a17ffde1e71b ci: have rust-cargo-test inherit from all
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 49182
diff changeset
   120
    <<: *all
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   121
    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
   122
    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
   123
        - make rust-tests
49940
86958104b6ca heptapod-ci: add `clippy` to the CI
Raphaël Gomès <rgomes@octobus.net>
parents: 49654
diff changeset
   124
        - 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
   125
    variables:
49945
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49506
diff changeset
   126
        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
   127
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
   128
.test-c: &test_c
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
   129
    <<: *runtests
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
   130
    variables:
44490
b3991b72d9f1 heptapod-ci: use the new `--rust/--no-rust` flag to run the tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44430
diff changeset
   131
        RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
46676
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46426
diff changeset
   132
        TEST_HGTESTS_ALLOW_NETIO: "1"
44254
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
   133
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
   134
test-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
   135
    <<: *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
   136
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   137
      - 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
   138
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   139
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   140
            - BUILD_PY_ID: "cp311-cp311"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   141
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
   142
    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
   143
        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
   144
        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
   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: 52150
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: 52150
diff changeset
   147
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   148
test-pure:
44254
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
   149
    <<: *runtests
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
   150
    variables:
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
   151
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
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
   152
51847
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
   153
test-rust: &test_rust
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
   154
    <<: *runtests
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
   155
    variables:
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
   156
        HGWITHRUSTEXT: cpython
44490
b3991b72d9f1 heptapod-ci: use the new `--rust/--no-rust` flag to run the tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44430
diff changeset
   157
        RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
44936
aa568b6c6a10 heptapod-ci: also run tests for chg on python 2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44577
diff changeset
   158
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   159
test-rhg:
46755
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
   160
    <<: *runtests
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
   161
    variables:
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
   162
        HGWITHRUSTEXT: cpython
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
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: 46676
diff changeset
   164
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   165
test-chg:
46146
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   166
    <<: *runtests
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   167
    variables:
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   168
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   169
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
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: 51835
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: 51835
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: 51835
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: 51835
diff changeset
   174
    <<: *test_c
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   175
    stage: py-version-compat
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
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: 51835
diff changeset
   177
    variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
   178
        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
   179
        WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   180
        BUILD_PY_ID: "cp38-cp38"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   181
        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: 52200
diff changeset
   182
        TEST_HGTESTS_ALLOW_NETIO: "1"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   183
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   184
      - 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
   185
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   186
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   187
            - 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
   188
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
   189
test-3.12-c:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
   190
    <<: *test_c
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   191
    stage: py-version-compat
51846
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
   192
    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: 51835
diff changeset
   193
    variables:
243e805e8a2d ci: add the option to test more Python versions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51835
diff changeset
   194
        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
   195
        WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   196
        BUILD_PY_ID: "cp312-cp312"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   197
        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: 52200
diff changeset
   198
        TEST_HGTESTS_ALLOW_NETIO: "1"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   199
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   200
      - 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
   201
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   202
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   203
            - 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
   204
51847
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
   205
test-3.12-rust:
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
   206
    <<: *test_rust
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   207
    stage: py-version-compat
51847
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
   208
    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: 51846
diff changeset
   209
    variables:
a3a9251c6081 ci: also offer to test 3.12 with rust
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51846
diff changeset
   210
        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
   211
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   212
test-3.13-c:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   213
    <<: *test_c
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   214
    stage: py-version-compat
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   215
    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: 51963
diff changeset
   216
    variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   217
        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
   218
        WHEEL_TYPE: "c"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   219
        BUILD_PY_ID: "cp313-cp313"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   220
        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: 52200
diff changeset
   221
        TEST_HGTESTS_ALLOW_NETIO: "1"
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   222
    needs:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   223
      - 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
   224
        parallel:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   225
          matrix:
7dd466f13f9b ci: build (and use) wheel for all supported version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52200
diff changeset
   226
            - 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
   227
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   228
test-3.13-rust:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   229
    <<: *test_rust
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   230
    stage: py-version-compat
51994
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   231
    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: 51963
diff changeset
   232
    variables:
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   233
        PYTHON: python3.13
baf9e3a8fd14 ci: also offer tests with Python 3.13
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51963
diff changeset
   234
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   235
check-pytype:
52149
6f641ebe759e ci: unify the way `check-pytype` inherit the common setting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52015
diff changeset
   236
    <<: *test_rust
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   237
    stage: checks
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   238
    before_script:
51713
74f1bf147a6d heptapod-ci: use new v2.1 image
Raphaël Gomès <rgomes@octobus.net>
parents: 51712
diff changeset
   239
      - 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
   240
      - echo "PATH, $PATH"
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   241
      - 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
   242
      - 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
   243
      - cd /tmp/mercurial-ci/
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   244
      - 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
   245
      - ./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
   246
    script:
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
   247
      - echo "Entering script section"
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
   248
      - sh contrib/check-pytype.sh
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   249
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   250
# `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
   251
# 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
   252
# 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
   253
# 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
   254
# 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: 47081
diff changeset
   255
.window_runtests_template: &windows_runtests
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
   256
    <<: *all
48522
b52cf5063865 heptapod-ci: make Windows jobs manual again
Raphaël Gomès <rgomes@octobus.net>
parents: 48328
diff changeset
   257
    when: manual  # we don't have any Windows runners anymore at the moment
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   258
    stage: platform-compat
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   259
    before_script:
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
   260
      - 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: 47081
diff changeset
   261
      # TODO: find/install cvs, bzr, perforce, gpg, sqlite3
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   262
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   263
    script:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   264
        - echo "Entering script section"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   265
        - echo "python used, $Env:PYTHON"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   266
        - Invoke-Expression "$Env:PYTHON -V"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   267
        - 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
   268
        - 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
   269
        - echo "$Env:TEMP"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   270
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
   271
        - 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: 47081
diff changeset
   272
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   273
windows:
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   274
    <<: *windows_runtests
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
   275
    when: manual
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   276
    tags:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   277
      - windows
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   278
    variables:
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
   279
        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: 52151
diff changeset
   280
        PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe
47827
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   281
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   282
windows-pyox:
47827
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   283
    <<: *windows_runtests
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
   284
    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
   285
    tags:
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   286
      - windows
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   287
    variables:
52156
8766d47edfd1 ci: add a runner for Windows 10
Matt Harbison <matt_harbison@yahoo.com>
parents: 52151
diff changeset
   288
        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: 52151
diff changeset
   289
        PYTHON: C:/hgdev/venvs/python39-x64/Scripts/python.exe
52014
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
   290
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
   291
macos:
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
   292
    <<: *test_c
52150
c99cbb02a82e ci: split the jobs on more stage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 52149
diff changeset
   293
    stage: platform-compat
52015
f9f41b3dcb64 ci: only use the macOS runner if manually invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 52014
diff changeset
   294
    when: manual  # avoid overloading the CI by default
52014
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
   295
    tags:
941141c2c475 ci: add a runner for macos
Matt Harbison <matt_harbison@yahoo.com>
parents: 52002
diff changeset
   296
      - macos