##// END OF EJS Templates
phabricator-refresh: add a magic value to skip it in the CI...
marmoute -
r49546:fba2d7fa default
parent child Browse files
Show More
@@ -1,188 +1,193 b''
1 1 stages:
2 2 - tests
3 3 - phabricator
4 4
5 5 image: registry.heptapod.net/mercurial/ci-images/mercurial-core:$HG_CI_IMAGE_TAG
6 6
7 7 variables:
8 8 PYTHON: python
9 9 TEST_HGMODULEPOLICY: "allow"
10 10 HG_CI_IMAGE_TAG: "latest"
11 11 TEST_HGTESTS_ALLOW_NETIO: "0"
12 12
13 13 .all_template: &all
14 14 when: always
15 15
16 16 .runtests_template: &runtests
17 17 <<: *all
18 18 stage: tests
19 19 # The runner made a clone as root.
20 20 # We make a new clone owned by user used to run the step.
21 21 before_script:
22 22 - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no
23 23 - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
24 24 - cd /tmp/mercurial-ci/
25 25 - ls -1 tests/test-check-*.* > /tmp/check-tests.txt
26 26 - black --version
27 27 - clang-format --version
28 28 script:
29 29 - echo "python used, $PYTHON"
30 30 - echo "$RUNTEST_ARGS"
31 31 - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS
32 32
33 33 checks-py2:
34 34 <<: *runtests
35 35 variables:
36 36 RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
37 37
38 38 checks-py3:
39 39 <<: *runtests
40 40 variables:
41 41 RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
42 42 PYTHON: python3
43 43
44 44 rust-cargo-test-py2: &rust_cargo_test
45 45 <<: *all
46 46 stage: tests
47 47 script:
48 48 - echo "python used, $PYTHON"
49 49 - make rust-tests
50 50
51 51 rust-cargo-test-py3:
52 52 stage: tests
53 53 <<: *rust_cargo_test
54 54 variables:
55 55 PYTHON: python3
56 56
57 57 phabricator-refresh:
58 58 stage: phabricator
59 rules:
60 - if: '"$PHABRICATOR_TOKEN" != "NO-PHAB"'
61 when: on_success
62 - if: '"$PHABRICATOR_TOKEN" == "NO-PHAB"'
63 when: never
59 64 variables:
60 65 DEFAULT_COMMENT: ":white_check_mark: refresh by Heptapod after a successful CI run (:octopus: :green_heart:)"
61 66 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 67 script:
63 68 - |
64 69 if [ `hg branch` == "stable" ]; then
65 70 ./contrib/phab-refresh-stack.sh --comment "$STABLE_COMMENT";
66 71 else
67 72 ./contrib/phab-refresh-stack.sh --comment "$DEFAULT_COMMENT";
68 73 fi
69 74
70 75 test-py2:
71 76 <<: *runtests
72 77 variables:
73 78 RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
74 79 TEST_HGMODULEPOLICY: "c"
75 80 TEST_HGTESTS_ALLOW_NETIO: "1"
76 81
77 82 test-py3:
78 83 <<: *runtests
79 84 variables:
80 85 RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
81 86 PYTHON: python3
82 87 TEST_HGMODULEPOLICY: "c"
83 88 TEST_HGTESTS_ALLOW_NETIO: "1"
84 89
85 90 test-py2-pure:
86 91 <<: *runtests
87 92 variables:
88 93 RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
89 94 TEST_HGMODULEPOLICY: "py"
90 95
91 96 test-py3-pure:
92 97 <<: *runtests
93 98 variables:
94 99 RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
95 100 PYTHON: python3
96 101 TEST_HGMODULEPOLICY: "py"
97 102
98 103 test-py2-rust:
99 104 <<: *runtests
100 105 variables:
101 106 HGWITHRUSTEXT: cpython
102 107 RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
103 108 TEST_HGMODULEPOLICY: "rust+c"
104 109
105 110 test-py3-rust:
106 111 <<: *runtests
107 112 variables:
108 113 HGWITHRUSTEXT: cpython
109 114 RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt"
110 115 PYTHON: python3
111 116 TEST_HGMODULEPOLICY: "rust+c"
112 117
113 118 test-py3-rhg:
114 119 <<: *runtests
115 120 variables:
116 121 HGWITHRUSTEXT: cpython
117 122 RUNTEST_ARGS: "--rust --rhg --blacklist /tmp/check-tests.txt"
118 123 PYTHON: python3
119 124 TEST_HGMODULEPOLICY: "rust+c"
120 125
121 126 test-py2-chg:
122 127 <<: *runtests
123 128 variables:
124 129 RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
125 130 TEST_HGMODULEPOLICY: "c"
126 131
127 132 test-py3-chg:
128 133 <<: *runtests
129 134 variables:
130 135 PYTHON: python3
131 136 RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg"
132 137 TEST_HGMODULEPOLICY: "c"
133 138
134 139 check-pytype-py3:
135 140 extends: .runtests_template
136 141 before_script:
137 142 - hg clone . /tmp/mercurial-ci/ --noupdate --config phases.publish=no
138 143 - hg -R /tmp/mercurial-ci/ update `hg log --rev '.' --template '{node}'`
139 144 - cd /tmp/mercurial-ci/
140 145 - make local PYTHON=$PYTHON
141 146 - $PYTHON -m pip install --user -U pytype==2021.04.15
142 147 variables:
143 148 RUNTEST_ARGS: " --allow-slow-tests tests/test-check-pytype.t"
144 149 HGTEST_SLOWTIMEOUT: "3600"
145 150 PYTHON: python3
146 151 TEST_HGMODULEPOLICY: "c"
147 152
148 153 # `sh.exe --login` sets a couple of extra environment variables that are defined
149 154 # in the MinGW shell, but switches CWD to /home/$username. The previous value
150 155 # is stored in OLDPWD. Of the added variables, MSYSTEM is crucial to running
151 156 # run-tests.py- it is needed to make run-tests.py generate a `python3` script
152 157 # that satisfies the various shebang lines and delegates to `py -3`.
153 158 .window_runtests_template: &windows_runtests
154 159 <<: *all
155 160 when: manual # we don't have any Windows runners anymore at the moment
156 161 stage: tests
157 162 before_script:
158 163 - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.* > C:/Temp/check-tests.txt'
159 164 # TODO: find/install cvs, bzr, perforce, gpg, sqlite3
160 165
161 166 script:
162 167 - echo "Entering script section"
163 168 - echo "python used, $Env:PYTHON"
164 169 - Invoke-Expression "$Env:PYTHON -V"
165 170 - Invoke-Expression "$Env:PYTHON -m black --version"
166 171 - echo "$Env:RUNTEST_ARGS"
167 172 - echo "$Env:TMP"
168 173 - echo "$Env:TEMP"
169 174
170 175 - 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'
171 176
172 177 windows-py3:
173 178 <<: *windows_runtests
174 179 tags:
175 180 - windows
176 181 variables:
177 182 TEST_HGMODULEPOLICY: "c"
178 183 RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt"
179 184 PYTHON: py -3
180 185
181 186 windows-py3-pyox:
182 187 <<: *windows_runtests
183 188 tags:
184 189 - windows
185 190 variables:
186 191 TEST_HGMODULEPOLICY: "c"
187 192 RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt --pyoxidized"
188 193 PYTHON: py -3
@@ -1,41 +1,47 b''
1 1 #!/bin/bash
2 2 set -eu
3 3
4 if [[ "$PHABRICATOR_TOKEN" == "NO-PHAB" ]]; then
5 echo 'Skipping Phabricator Step' >&2
6 exit 0
7 fi
8
4 9 revision_in_stack=`hg log \
5 10 --rev '.#stack and ::. and topic()' \
6 11 -T '\nONE-REV\n' \
7 12 | grep 'ONE-REV' | wc -l`
8 13 revision_on_phab=`hg log \
9 14 --rev '.#stack and ::. and topic() and desc("re:\nDifferential Revision: [^\n]+D\d+$")'\
10 15 -T '\nONE-REV\n' \
11 16 | grep 'ONE-REV' | wc -l`
12 17
13 18 if [[ $revision_in_stack -eq 0 ]]; then
14 19 echo "stack is empty" >&2
15 20 exit 0
16 21 fi
17 22
18 23 if [[ $revision_on_phab -eq 0 ]]; then
19 24 echo "no tracked diff in this stack" >&2
20 25 exit 0
21 26 fi
22 27
23 28 if [[ $revision_on_phab -lt $revision_in_stack ]]; then
24 29 echo "not all stack changesets (${revision_in_stack}) have matching Phabricator Diff (${revision_on_phab})" >&2
25 30 exit 2
26 31 fi
27 32
28 33 if [[ "$PHABRICATOR_TOKEN" == "" ]]; then
29 34 echo 'missing $PHABRICATOR_TOKEN variable' >&2
35 echo '(use PHABRICATOR_TOKEN="NO-PHAB" to disable this step)' >&2
30 36 exit 2
31 37 fi
32 38
33 39 hg \
34 40 --config extensions.phabricator= \
35 41 --config phabricator.url=https://phab.mercurial-scm.org/ \
36 42 --config phabricator.callsign=HG \
37 43 --config auth.phabricator.schemes=https \
38 44 --config auth.phabricator.prefix=phab.mercurial-scm.org \
39 45 --config auth.phabricator.phabtoken=$PHABRICATOR_TOKEN \
40 46 phabsend --rev '.#stack and ::. and topic()' \
41 47 "$@"
General Comments 0
You need to be logged in to leave comments. Login now