contrib/heptapod-ci.yml
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 02 Dec 2020 15:24:10 +0100
changeset 46156 7d99614b7b77
parent 46146 d109dda4a3e7
child 46244 fb69b51b4daa
permissions -rw-r--r--
copies-rust: make the comparison aware of the revision being current merged This make no significant performance change in practice (all ±2%) in practice, but it will help us to distinct between some semantically different cases later on. Differential Revision: https://phab.mercurial-scm.org/D9498

stages:
  - tests
  - phabricator

image: registry.heptapod.net/mercurial/ci-images/mercurial-core

# The runner made a clone as root.
# We make a new clone owned by user used to run the step.
before_script:
    - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no
    - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
    - cd /tmp/mercurial-ci/rust/rhg
    - cargo build
    - cd /tmp/mercurial-ci/
    - ls -1 tests/test-check-*.* > /tmp/check-tests.txt

variables:
    PYTHON: python
    TEST_HGMODULEPOLICY: "allow"

.runtests_template: &runtests
    stage: tests
    script:
        - echo "python used, $PYTHON"
        - echo "$RUNTEST_ARGS"
        - HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS

checks-py2:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"

checks-py3:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
        PYTHON: python3

rust-cargo-test-py2: &rust_cargo_test
    stage: tests
    script:
        - echo "python used, $PYTHON"
        - make rust-tests

rust-cargo-test-py3:
    stage: tests
    <<: *rust_cargo_test
    variables:
        PYTHON: python3

phabricator-refresh:
    stage: phabricator
    script:
      - "./contrib/phab-refresh-stack.sh --comment \":white_check_mark: refresh by Heptapod after a successful CI run (:octopus: :green_heart:)\""

rust-cargo-test-py3-dirstate-tree:
    <<: *rust_cargo_test
    variables:
        PYTHON: python3
        HG_RUST_FEATURES: dirstate-tree

test-py2:
    <<: *runtests
    variables:
        RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "c"

test-py3:
    <<: *runtests
    variables:
        RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
        PYTHON: python3
        TEST_HGMODULEPOLICY: "c"

test-py2-pure:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "py"

test-py3-pure:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
        PYTHON: python3
        TEST_HGMODULEPOLICY: "py"

test-py2-rust:
    <<: *runtests
    variables:
        HGWITHRUSTEXT: cpython
        RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "rust+c"

test-py3-rust:
    <<: *runtests
    variables:
        HGWITHRUSTEXT: cpython
        RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
        PYTHON: python3
        TEST_HGMODULEPOLICY: "rust+c"

test-py3-rust-dirstate-tree:
    <<: *runtests
    variables:
        HGWITHRUSTEXT: cpython
        RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
        PYTHON: python3
        TEST_HGMODULEPOLICY: "rust+c"
        HG_RUST_FEATURES: "dirstate-tree"

test-py2-chg:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
        TEST_HGMODULEPOLICY: "c"

test-py3-chg:
    <<: *runtests
    variables:
        PYTHON: python3
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
        TEST_HGMODULEPOLICY: "c"