view .gitlab-ci.yml @ 5350:73cd416a1653

tests: replace check-compat-strings.sh with a Python script Previously it was a bash script (using BASH_REMATCH, for example) that was used in tests, and we want our tests as portable as possible, so mostly that is the reason for this rewrite. It's also easier to add a cache to the Python version, which reduces the run time: from ~10s to ~5.5s. Another change worth mentioning is filtering the list of files to be only .py files. We don't currently have compat comments in any other files.
author Anton Shestakov <av6@dwimlabs.net>
date Fri, 29 May 2020 13:23:45 +0800
parents f464b29898e3
children dd88c127ad81
line wrap: on
line source

flake8:
    image: octobus/ci-py2-hgext3rd
    script:
        - hg files -0 'set:(**.py or grep("^#!.*python")) - removed()' -X hgext3rd/evolve/thirdparty | xargs -0 flake8

pytype:
    image: octobus/ci-py3-hgext3rd
    script:
        - hg pull -R /ci/repos/mercurial/
        - hg_rev=$(tests/testlib/map-hg-rev.sh "$(hg log -r . -T '{branch}')")
        - hg -R /ci/repos/mercurial/ update "$hg_rev"
        - jobs=$(python -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: py2
    PYTHON: python
    RUNTEST_ARGS: ""
    TEST_HGMODULEPOLICY: "allow"

.runtests_template: &runtests
    image: octobus/ci-$PY-hgext3rd
    script:
        - hg pull -R /ci/repos/mercurial/
        - hg_rev=$(tests/testlib/map-hg-rev.sh "$(hg log -r . -T '{branch}')")
        - hg -R /ci/repos/mercurial/ update "$hg_rev"
        - (cd tests; set -x; HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" /ci/repos/mercurial/tests/run-tests.py --color=always $RUNTEST_ARGS)

tests-py2-cext:
    <<: *runtests
    variables:
        TEST_HGMODULEPOLICY: "c"

tests-py2-pure:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--pure"
        TEST_HGMODULEPOLICY: "py"

tests-py3-cext:
    <<: *runtests
    variables:
        PY: py3
        PYTHON: python3
        TEST_HGMODULEPOLICY: "c"

tests-py3-pure:
    <<: *runtests
    variables:
        PY: py3
        PYTHON: python3
        RUNTEST_ARGS: "--pure"
        TEST_HGMODULEPOLICY: "py"

doc:
    image: octobus/ci-py2-evolve-doc
    script:
        - cd docs/
        - make
    variables:
        LANG: en_us.UTF-8
    artifacts:
        paths:
            - html/*