view contrib/heptapod-ci.yml @ 46604:ad107ed7a4aa

ci: test real dependency installation for pip In the past, the pip smoke test inhibited actual dependency installation, but that fails in different environments for setuptools itself. Since it isn't what we actually want to test (which is pip install), allow this to call home, if HGTESTS_ALLOW_NETIO=1 is set in the environment. Differential Revision: https://phab.mercurial-scm.org/D9950
author Joerg Sonnenberger <joerg@bec.de>
date Thu, 04 Feb 2021 23:23:35 +0100
parents 0da465780bba
children b41f551c5dc7
line wrap: on
line source

stages:
  - tests
  - phabricator

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

variables:
    PYTHON: python
    TEST_HGMODULEPOLICY: "allow"
    HG_CI_IMAGE_TAG: "latest"

.runtests_template: &runtests
    stage: tests
    # 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/
      - ls -1 tests/test-check-*.* > /tmp/check-tests.txt
      - black --version
      - clang-format --version
    script:
        - echo "python used, $PYTHON"
        - echo "$RUNTEST_ARGS"
        - HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS


.rust_template: &rust
    before_script:
      - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no
      - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
      - ls -1 tests/test-check-*.* > /tmp/check-tests.txt
      - cd /tmp/mercurial-ci/rust/rhg
      - cargo build --release
      - cd /tmp/mercurial-ci/


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:)\""

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
    <<: *rust
    variables:
        HGWITHRUSTEXT: cpython
        RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "rust+c"

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

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"