1stages: 2 - tests 3 - phabricator 4 5image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG 6 7variables: 8 PYTHON: python 9 TEST_HGMODULEPOLICY: "allow" 10 HG_CI_IMAGE_TAG: "latest" 11 TEST_HGTESTS_ALLOW_NETIO: "0" 12 13.all_template: &all 14 when: always 15 16.runtests_template: &runtests 17 <<: *all 18 stage: tests 19 # The runner made a clone as root. 20 # We make a new clone owned by user used to run the step. 21 before_script: 22 - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no 23 - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'` 24 - cd /tmp/mercurial-ci/ 25 - ls -1 tests/test-check-*.* > /tmp/check-tests.txt 26 - black --version 27 - clang-format --version 28 script: 29 - echo "python used, $PYTHON" 30 - echo "$RUNTEST_ARGS" 31 - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS 32 33checks-py2: 34 <<: *runtests 35 variables: 36 RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt" 37 38checks-py3: 39 <<: *runtests 40 variables: 41 RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt" 42 PYTHON: python3 43 44rust-cargo-test-py2: &rust_cargo_test 45 <<: *all 46 stage: tests 47 script: 48 - echo "python used, $PYTHON" 49 - make rust-tests 50 51rust-cargo-test-py3: 52 stage: tests 53 <<: *rust_cargo_test 54 variables: 55 PYTHON: python3 56 57phabricator-refresh: 58 stage: phabricator 59 variables: 60 DEFAULT_COMMENT: ":white_check_mark: refresh by Heptapod after a successful CI run (:octopus: :green_heart:)" 61 STABLE_COMMENT: ":white_check_mark: refresh by Heptapod after a successful CI run (:octopus: :green_heart:)\n⚠ This patch is intended for stable ⚠\n{image https://media.giphy.com/media/nYI8SmmChYXK0/source.gif}" 62 script: 63 - | 64 if [ `hg branch` == "stable" ]; then 65 ./contrib/phab-refresh-stack.sh --comment "$STABLE_COMMENT"; 66 else 67 ./contrib/phab-refresh-stack.sh --comment "$DEFAULT_COMMENT"; 68 fi 69 70test-py2: 71 <<: *runtests 72 variables: 73 RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt" 74 TEST_HGMODULEPOLICY: "c" 75 TEST_HGTESTS_ALLOW_NETIO: "1" 76 77test-py3: 78 <<: *runtests 79 variables: 80 RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt" 81 PYTHON: python3 82 TEST_HGMODULEPOLICY: "c" 83 TEST_HGTESTS_ALLOW_NETIO: "1" 84 85test-py2-pure: 86 <<: *runtests 87 variables: 88 RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt" 89 TEST_HGMODULEPOLICY: "py" 90 91test-py3-pure: 92 <<: *runtests 93 variables: 94 RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt" 95 PYTHON: python3 96 TEST_HGMODULEPOLICY: "py" 97 98test-py2-rust: 99 <<: *runtests 100 variables: 101 HGWITHRUSTEXT: cpython 102 RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt" 103 TEST_HGMODULEPOLICY: "rust+c" 104 105test-py3-rust: 106 <<: *runtests 107 variables: 108 HGWITHRUSTEXT: cpython 109 RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt" 110 PYTHON: python3 111 TEST_HGMODULEPOLICY: "rust+c" 112 113test-py3-rhg: 114 <<: *runtests 115 variables: 116 HGWITHRUSTEXT: cpython 117 RUNTEST_ARGS: "--rust --rhg --blacklist /tmp/check-tests.txt" 118 PYTHON: python3 119 TEST_HGMODULEPOLICY: "rust+c" 120 121test-py2-chg: 122 <<: *runtests 123 variables: 124 RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg" 125 TEST_HGMODULEPOLICY: "c" 126 127test-py3-chg: 128 <<: *runtests 129 variables: 130 PYTHON: python3 131 RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg" 132 TEST_HGMODULEPOLICY: "c" 133 134check-pytype-py3: 135 extends: .runtests_template 136 before_script: 137 - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no 138 - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'` 139 - cd /tmp/mercurial-ci/ 140 - make local PYTHON=$PYTHON 141 - $PYTHON -m pip install --user -U pytype==2021.04.15 142 variables: 143 RUNTEST_ARGS: " --allow-slow-tests tests/test-check-pytype.t" 144 HGTEST_SLOWTIMEOUT: "3600" 145 PYTHON: python3 146 TEST_HGMODULEPOLICY: "c" 147 148# `sh.exe --login` sets a couple of extra environment variables that are defined 149# in the MinGW shell, but switches CWD to /home/$username. The previous value 150# is stored in OLDPWD. Of the added variables, MSYSTEM is crucial to running 151# run-tests.py- it is needed to make run-tests.py generate a `python3` script 152# that satisfies the various shebang lines and delegates to `py -3`. 153.window_runtests_template: &windows_runtests 154 <<: *all 155 stage: tests 156 before_script: 157 - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.* > C:/Temp/check-tests.txt' 158 # TODO: find/install cvs, bzr, perforce, gpg, sqlite3 159 160 script: 161 - echo "Entering script section" 162 - echo "python used, $Env:PYTHON" 163 - Invoke-Expression "$Env:PYTHON -V" 164 - Invoke-Expression "$Env:PYTHON -m black --version" 165 - echo "$Env:RUNTEST_ARGS" 166 - echo "$Env:TMP" 167 - echo "$Env:TEMP" 168 169 - 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' 170 171windows-py3: 172 <<: *windows_runtests 173 tags: 174 - windows 175 variables: 176 TEST_HGMODULEPOLICY: "c" 177 RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt" 178 PYTHON: py -3 179 180windows-py3-pyox: 181 <<: *windows_runtests 182 tags: 183 - windows 184 variables: 185 TEST_HGMODULEPOLICY: "c" 186 RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt --pyoxidized" 187 PYTHON: py -3 188