.prepare_hg: &prepare_hg
    - hg pull -R /ci/repos/mercurial/ https://repo.mercurial-scm.org/hg
    - hg_branch=${HG_BRANCH:-$(tests/testlib/map-hg-rev.sh $CI_COMMIT_HG_BRANCH)}
    - hg -R /ci/repos/mercurial/ update "$hg_branch"
    - hg_rev=$(hg log -R /ci/repos/mercurial/ -r . -T '{node}')
    - echo testing with mercurial branch="$hg_branch", revision="$hg_rev"

pytype:
    image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd
    script:
        - *prepare_hg
        - pytype --version
        - jobs=$(python3 -c 'import multiprocessing; print(multiprocessing.cpu_count())')
        - pytype -P /ci/repos/mercurial/:hgext3rd -k hgext3rd -x hgext3rd/evolve/thirdparty -j $jobs || true
    when: manual

variables:
    PY: py3
    PYTHON: python3
    RUNTEST_ARGS: ""
    TEST_HGMODULEPOLICY: "allow"

.runtests_template: &runtests
    image: registry.heptapod.net/mercurial/ci-images/$PY-hgext3rd
    before_script:
        - (cd tests; ls -1 test-check-*.t > /tmp/check-tests.txt)
        - (cd tests; ls -1 test-check-sdist.t test-doctest.py > /tmp/compat-blacklist.txt)
    script:
        - *prepare_hg
        - ($PYTHON --version)
        - (cd tests; set -x; HGMODULEPOLICY="$TEST_HGMODULEPOLICY" $PYTHON /ci/repos/mercurial/tests/run-tests.py --color=always $RUNTEST_ARGS)

checks-py2:
    <<: *runtests
    variables:
        PY: py2
        PYTHON: prlimit --nofile=1024:1024 python2
        RUNTEST_ARGS: "--test-list /tmp/check-tests.txt --blacklist /tmp/compat-blacklist.txt"
        CI_CLEVER_CLOUD_FLAVOR: S

tests-py2-cext:
    <<: *runtests
    variables:
        PY: py2
        PYTHON: prlimit --nofile=1024:1024 python2
        RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --blacklist /tmp/compat-blacklist.txt"
        TEST_HGMODULEPOLICY: "c"

tests-py2-pure:
    <<: *runtests
    variables:
        PY: py2
        PYTHON: prlimit --nofile=1024:1024 python2
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt --blacklist /tmp/compat-blacklist.txt"
        TEST_HGMODULEPOLICY: "py"
