view contrib/heptapod-ci.yml @ 46197:2607a9346398

branchmap: micro-optimize branchinfo changelogrevision() is supposed to be used if not all data of changelog.read is used. This is the case here as only the extra field is used. This also improves extensibility as at least hgext.git doesn't implement changelog.read. Differential Revision: https://phab.mercurial-scm.org/D9626
author Joerg Sonnenberger <joerg@bec.de>
date Thu, 17 Dec 2020 13:29:50 +0100
parents d109dda4a3e7
children fb69b51b4daa
line wrap: on
line source

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"