contrib/heptapod-ci.yml
author Mads Kiilerich <mads@kiilerich.com>
Tue, 27 Jun 2023 13:05:03 +0200
branchstable
changeset 50756 847f703a4d13
parent 50741 929655c0e613
child 51695 d859554a9187
child 51959 88715d0bef8d
permissions -rw-r--r--
utils: imp module is removed in Python 3.12 - get is_frozen() from _imp imp has been deprecated for a long time, and has finally been removed in Python 3.12 . The successor importlib is using the same internal _imp module as imp, but doesn't expose it's is_frozen. Using the internal function directly seems like the cleanest solution. Another alternative to imp.is_frozen("__main__") is sys.modules['__main__'].__spec__.origin == 'frozen' but that seems even more internal and fragile.
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:
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
    23
  - tests
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
    24
46323
723d241543b0 heptapod-ci: allow testing with docker image other than :latest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46256
diff changeset
    25
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
    26
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    27
variables:
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    28
    PYTHON: python
44430
4bd35d25903f heptapod-ci: use strict module policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44255
diff changeset
    29
    TEST_HGMODULEPOLICY: "allow"
48974
2bb75c65fa6c ci: use the `v1.0` flavor of the docker images in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48697
diff changeset
    30
    HG_CI_IMAGE_TAG: "v1.0"
46676
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46426
diff changeset
    31
    TEST_HGTESTS_ALLOW_NETIO: "0"
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    32
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
    33
.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
    34
  when: on_success
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
    35
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    36
.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
    37
    <<: *all
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
    38
    stage: tests
46244
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
diff changeset
    39
    # 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
    40
    # 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
    41
    before_script:
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
diff changeset
    42
      - 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
    43
      - 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
    44
      - cd /tmp/mercurial-ci/
fb69b51b4daa ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 46146
diff changeset
    45
      - ls -1 tests/test-check-*.* > /tmp/check-tests.txt
46402
6b0dac9f650a heptapod-ci: indicate which version of black is used for the run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46401
diff changeset
    46
      - black --version
46404
a390c7fcd286 heptapod-ci: indicate which version of clang-format is used for the run
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46402
diff changeset
    47
      - clang-format --version
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
    48
    script:
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    49
        - echo "python used, $PYTHON"
50450
608a69d5d38f heptapod-ci: display python version
Axel Prel <axel.prel@xcg-consulting.fr>
parents: 49972
diff changeset
    50
        - $PYTHON --version
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
    51
        - echo "$RUNTEST_ARGS"
46676
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46426
diff changeset
    52
        - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    53
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
    54
checks:
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    55
    <<: *runtests
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    56
    variables:
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
    57
        RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
44251
2aa2408e7515 heptapod-ci: run test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44250
diff changeset
    58
        PYTHON: python3
49945
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49506
diff changeset
    59
        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
    60
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
    61
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
    62
    <<: *all
45959
3a3a510617e5 heptapod-ci: add a explicite "test" phases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45897
diff changeset
    63
    stage: tests
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
    64
    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
    65
        - echo "python used, $PYTHON"
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
    66
        - make rust-tests
49940
86958104b6ca heptapod-ci: add `clippy` to the CI
Raphaël Gomès <rgomes@octobus.net>
parents: 49654
diff changeset
    67
        - 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
    68
    variables:
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
    69
        PYTHON: python3
49945
d00ac86fbd78 contrib: adjust heptapod CI flavor sizes
Raphaël Gomès <rgomes@octobus.net>
parents: 49506
diff changeset
    70
        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
    71
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
    72
test-c:
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
    73
    <<: *runtests
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
    74
    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
    75
        RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
44253
8814308e83bb heptapod-ci: run the normal test suite
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44252
diff changeset
    76
        PYTHON: python3
44430
4bd35d25903f heptapod-ci: use strict module policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44255
diff changeset
    77
        TEST_HGMODULEPOLICY: "c"
46676
b41f551c5dc7 ci: hook network-io tests into the pipeline
Joerg Sonnenberger <joerg@bec.de>
parents: 46426
diff changeset
    78
        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
    79
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
    80
test-pure:
44254
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
    81
    <<: *runtests
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
    82
    variables:
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
    83
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
6733c565ca46 heptapod-ci: run the --pure test too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44253
diff changeset
    84
        PYTHON: python3
44430
4bd35d25903f heptapod-ci: use strict module policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44255
diff changeset
    85
        TEST_HGMODULEPOLICY: "py"
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
    86
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
    87
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
    88
    <<: *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
    89
    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
    90
        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
    91
        RUNTEST_ARGS: "--rust --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
    92
        PYTHON: python3
44430
4bd35d25903f heptapod-ci: use strict module policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44255
diff changeset
    93
        TEST_HGMODULEPOLICY: "rust+c"
44936
aa568b6c6a10 heptapod-ci: also run tests for chg on python 2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44577
diff changeset
    94
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
    95
test-rhg:
46755
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
    96
    <<: *runtests
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
    97
    variables:
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
    98
        HGWITHRUSTEXT: cpython
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
    99
        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
   100
        PYTHON: python3
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
   101
        TEST_HGMODULEPOLICY: "rust+c"
6b5714479288 ci: Add a job testing with rhg installed as `hg`
Simon Sapin <simon.sapin@octobus.net>
parents: 46676
diff changeset
   102
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   103
test-chg:
46146
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   104
    <<: *runtests
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   105
    variables:
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   106
        PYTHON: python3
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   107
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
d109dda4a3e7 contrib: run python3+chg tests too in heptapod CI
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46045
diff changeset
   108
        TEST_HGMODULEPOLICY: "c"
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   109
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   110
check-pytype:
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   111
    extends: .runtests_template
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   112
    before_script:
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   113
      - 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
   114
      - 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
   115
      - cd /tmp/mercurial-ci/
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   116
      - make local PYTHON=$PYTHON
49654
86e398a3d598 ci: bump pytype to 2022.11.18
Matt Harbison <matt_harbison@yahoo.com>
parents: 49653
diff changeset
   117
      - $PYTHON -m pip install --user -U libcst==0.3.20 pytype==2022.11.18
49653
556efeea6dbf ci: run the script to add vendored type stubs to typeshed
Matt Harbison <matt_harbison@yahoo.com>
parents: 49506
diff changeset
   118
      - ./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
   119
    script:
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
   120
      - echo "Entering script section"
dbdee8ac3e3f heptapod-ci: use shell script in pytype step
Raphaël Gomès <rgomes@octobus.net>
parents: 49279
diff changeset
   121
      - sh contrib/check-pytype.sh
47081
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   122
    variables:
e917fa36fb58 heptapod-ci: enable pytype checking
Matt Harbison <matt_harbison@yahoo.com>
parents: 46980
diff changeset
   123
        PYTHON: python3
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   124
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   125
# `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
   126
# 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
   127
# 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
   128
# 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
   129
# 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
   130
.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
   131
    <<: *all
48522
b52cf5063865 heptapod-ci: make Windows jobs manual again
Raphaël Gomès <rgomes@octobus.net>
parents: 48328
diff changeset
   132
    when: manual  # we don't have any Windows runners anymore at the moment
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   133
    stage: tests
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   134
    before_script:
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
   135
      - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.* > C:/Temp/check-tests.txt'
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   136
      # 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
   137
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   138
    script:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   139
        - echo "Entering script section"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   140
        - echo "python used, $Env:PYTHON"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   141
        - Invoke-Expression "$Env:PYTHON -V"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   142
        - Invoke-Expression "$Env:PYTHON -m black --version"
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   143
        - 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
   144
        - 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
   145
        - echo "$Env:TEMP"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   146
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   147
        - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" $PYTHON tests/run-tests.py --color=always $RUNTEST_ARGS'
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   148
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   149
windows:
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   150
    <<: *windows_runtests
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   151
    tags:
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   152
      - windows
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   153
    variables:
47645
b41b4c1c644f windows: enforce the module policy to be c for test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47570
diff changeset
   154
        TEST_HGMODULEPOLICY: "c"
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
   155
        RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt"
47570
bc01b8ad6134 ci-windows: introduce manual windows CI
Raphaël Gomès <rgomes@octobus.net>
parents: 47081
diff changeset
   156
        PYTHON: py -3
47827
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   157
48949
469b9ee336a6 heptapod-ci: remove useless mentions of Python 3
Raphaël Gomès <rgomes@octobus.net>
parents: 48799
diff changeset
   158
windows-pyox:
47827
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   159
    <<: *windows_runtests
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   160
    tags:
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   161
      - windows
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   162
    variables:
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   163
        TEST_HGMODULEPOLICY: "c"
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   164
        RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt --pyoxidized"
9261326dd032 ci: run --pyoxidized tests on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47825
diff changeset
   165
        PYTHON: py -3