Mercurial > hg
view contrib/heptapod-ci.yml @ 51874:1b17309cdaab
typing: make `unionrepository` subclass `localrepository` while type checking
This is the same change as 9d4ad05bc91c made for `bundlerepository`, for the
same reasons.
Also, add a comment here to suppress the PyCharm warning that the superclass
constructor is not called, that is new now that there's a simulated superclass.
That lack of a call is by design- `makeunionrepository()` does magic that
PyCharm isn't aware of. But PyCharm has been better at catching problems than
pytype in a lot of cases, so I'd like to reduce the bogus things it flags, to
make the real issues stand out.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 19 Sep 2024 16:19:29 -0400 |
parents | a3a9251c6081 |
children | 5e2f0fec0a47 |
line wrap: on
line source
# Don't run pipelines on branch "merge", since we're fast-forward only. # Gitlab sees a new branch (since e.g. `topic/stable/my-topic` becomes # `branch/stable`), but the hash hasn't changed. There is no reason to # re-run the CI in our case, since we haven't built up any specific automation. # Right now it's just wasted CI and developer time. # One can still run the pipeline manually via the web interface, # like in the case of releases, to make *extra* sure that the actual branch # has succeeded. workflow: rules: - if: $CI_COMMIT_BRANCH =~ /^branch\/.*/ && $CI_PIPELINE_SOURCE != "web" when: never - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: never - if: $CI_PIPELINE_SOURCE == "push" when: always - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never - if: $CI_COMMIT_BRANCH when: always stages: - tests image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG variables: PYTHON: python TEST_HGMODULEPOLICY: "allow" HG_CI_IMAGE_TAG: "v2.1" TEST_HGTESTS_ALLOW_NETIO: "0" .all_template: &all when: on_success .runtests_template: &runtests <<: *all stage: tests # The runner made a clone as root. # We make a new clone owned by user used to run the step. before_script: - echo "python used, $PYTHON" - $PYTHON --version - black --version - clang-format --version - 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 script: - echo "$RUNTEST_ARGS" - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS checks: <<: *runtests variables: RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt" CI_CLEVER_CLOUD_FLAVOR: S rust-cargo-test: <<: *all stage: tests script: - make rust-tests - make cargo-clippy variables: CI_CLEVER_CLOUD_FLAVOR: S test-c: &test_c <<: *runtests variables: RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt" TEST_HGMODULEPOLICY: "c" TEST_HGTESTS_ALLOW_NETIO: "1" test-pure: <<: *runtests variables: RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt" TEST_HGMODULEPOLICY: "py" test-rust: &test_rust <<: *runtests variables: HGWITHRUSTEXT: cpython RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt" TEST_HGMODULEPOLICY: "rust+c" test-rhg: <<: *runtests variables: HGWITHRUSTEXT: cpython RUNTEST_ARGS: "--rust --rhg --blacklist /tmp/check-tests.txt" TEST_HGMODULEPOLICY: "rust+c" test-chg: <<: *runtests variables: RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg" TEST_HGMODULEPOLICY: "c" # note: we should probably get a full matrix for flavor × py-version, but this # is a simple start to be able to check if we break the lowest supported # version (and 3.12 have been giving us various troubles) test-3.8-c: <<: *test_c when: manual # avoid overloading the CI by default variables: PYTHON: python3.8 test-3.12-c: <<: *test_c when: manual # avoid overloading the CI by default variables: PYTHON: python3.12 test-3.12-rust: <<: *test_rust when: manual # avoid overloading the CI by default variables: PYTHON: python3.12 check-pytype: extends: .runtests_template before_script: - export PATH="/home/ci-runner/vendor/pyenv/pyenv-2.4.7-adf3c2bccf09cdb81febcfd15b186711a33ac7a8/shims:/home/ci-runner/vendor/pyenv/pyenv-2.4.7-adf3c2bccf09cdb81febcfd15b186711a33ac7a8/bin:$PATH" - echo "PATH, $PATH" - 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/ - make local PYTHON=$PYTHON - ./contrib/setup-pytype.sh script: - echo "Entering script section" - sh contrib/check-pytype.sh # `sh.exe --login` sets a couple of extra environment variables that are defined # in the MinGW shell, but switches CWD to /home/$username. The previous value # is stored in OLDPWD. Of the added variables, MSYSTEM is crucial to running # run-tests.py- it is needed to make run-tests.py generate a `python3` script # that satisfies the various shebang lines and delegates to `py -3`. .window_runtests_template: &windows_runtests <<: *all when: manual # we don't have any Windows runners anymore at the moment stage: tests before_script: - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.* > C:/Temp/check-tests.txt' # TODO: find/install cvs, bzr, perforce, gpg, sqlite3 script: - echo "Entering script section" - echo "python used, $Env:PYTHON" - Invoke-Expression "$Env:PYTHON -V" - Invoke-Expression "$Env:PYTHON -m black --version" - echo "$Env:RUNTEST_ARGS" - echo "$Env:TMP" - echo "$Env:TEMP" - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" $PYTHON tests/run-tests.py --color=always $RUNTEST_ARGS' windows: <<: *windows_runtests tags: - windows variables: TEST_HGMODULEPOLICY: "c" RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt" PYTHON: py -3 windows-pyox: <<: *windows_runtests tags: - windows variables: TEST_HGMODULEPOLICY: "c" RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt --pyoxidized" PYTHON: py -3