annotate .gitlab-ci.yml @ 5926:aca07ac01167

divergence-resolution: use last evolution date to choose p1 when merging Before this patch, we choose the minimum revision as p1 while merging the two divergent csets which had a drawback that if independent user resolve the same divergence, their final resolved cset would have different hashes (because of 'divergence_source_local' and 'divergence_source_other' extras). Now, we decide the p1 on the basis of which of the two divergent cset was rewritten more recently. This new logic removes the "different hash" problem. To save us from big output changes in the tests due to this change, I also added the second factor i.e revision_number while sorting the csets wrt dates (as date is same for all the csets in tests) to fallback to the old way of picking the revision i.e choosing the minimum rev number. And to demonstrate that now divergence resolution is independent of which side user run the `hg evolve --content-div` resolved cset id won't change, I have added a separate test file. Flag --config devel.default-date='...' is being used here to record a custom date in the obsmarkers.
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Wed, 03 Mar 2021 12:40:59 +0530
parents c0ed8e574638
children 8accc5eb0aba 221a2563b02f 97c248f9bb58
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5371
02804d8bac31 ci: use a script template to pull and update /ci/repos/mercurial/
Anton Shestakov <av6@dwimlabs.net>
parents: 5370
diff changeset
1 .prepare_hg: &prepare_hg
02804d8bac31 ci: use a script template to pull and update /ci/repos/mercurial/
Anton Shestakov <av6@dwimlabs.net>
parents: 5370
diff changeset
2 - hg pull -R /ci/repos/mercurial/
5541
98e2613d797d branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 5371 5538
diff changeset
3 - hg_branch=$(tests/testlib/map-hg-rev.sh "$(hg identify --branch)")
98e2613d797d branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 5371 5538
diff changeset
4 - hg -R /ci/repos/mercurial/ update "$hg_branch"
5564
0e23393dda9c ci: drop extraneous space
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 5541
diff changeset
5 - hg_rev=$(hg log -R /ci/repos/mercurial/ -r . -T '{node}')
5541
98e2613d797d branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 5371 5538
diff changeset
6 - echo testing with mercurial branch="$hg_branch", revision="$hg_rev"
4926
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
7
5076
43b448bb1a57 heptapod-ci: add pytype job, allow it to fail for now
Anton Shestakov <av6@dwimlabs.net>
parents: 4986
diff changeset
8 pytype:
5677
9a16cf248b05 heptapod-ci: new address for base Docker images
Georges Racinet <georges.racinet@octobus.net>
parents: 5662
diff changeset
9 image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd
5076
43b448bb1a57 heptapod-ci: add pytype job, allow it to fail for now
Anton Shestakov <av6@dwimlabs.net>
parents: 4986
diff changeset
10 script:
5371
02804d8bac31 ci: use a script template to pull and update /ci/repos/mercurial/
Anton Shestakov <av6@dwimlabs.net>
parents: 5370
diff changeset
11 - *prepare_hg
5370
06b5e43ac29c ci: print the exact version of pytype
Anton Shestakov <av6@dwimlabs.net>
parents: 5369
diff changeset
12 - pytype --version
5076
43b448bb1a57 heptapod-ci: add pytype job, allow it to fail for now
Anton Shestakov <av6@dwimlabs.net>
parents: 4986
diff changeset
13 - jobs=$(python -c 'import multiprocessing; print multiprocessing.cpu_count()')
43b448bb1a57 heptapod-ci: add pytype job, allow it to fail for now
Anton Shestakov <av6@dwimlabs.net>
parents: 4986
diff changeset
14 - pytype -P /ci/repos/mercurial/:hgext3rd -k hgext3rd -x hgext3rd/evolve/thirdparty -j $jobs || true
43b448bb1a57 heptapod-ci: add pytype job, allow it to fail for now
Anton Shestakov <av6@dwimlabs.net>
parents: 4986
diff changeset
15 when: manual
43b448bb1a57 heptapod-ci: add pytype job, allow it to fail for now
Anton Shestakov <av6@dwimlabs.net>
parents: 4986
diff changeset
16
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
17 variables:
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
18 PY: py2
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
19 PYTHON: python
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
20 RUNTEST_ARGS: ""
5342
4a958a7bb138 ci: set HGMODULEPOLICY when running specific variants
Anton Shestakov <av6@dwimlabs.net>
parents: 5341
diff changeset
21 TEST_HGMODULEPOLICY: "allow"
4925
dbeb04ee6679 heptapod-ci: add a --pure variant for the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4924
diff changeset
22
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
23 .runtests_template: &runtests
5677
9a16cf248b05 heptapod-ci: new address for base Docker images
Georges Racinet <georges.racinet@octobus.net>
parents: 5662
diff changeset
24 image: registry.heptapod.net/mercurial/ci-images/$PY-hgext3rd
5369
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
25 before_script:
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
26 - (cd tests; ls -1 test-check-*.t > /tmp/check-tests.txt)
4874
ab0d09c93532 gitlab-ci: be bold and try to run the full test in them
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4873
diff changeset
27 script:
5371
02804d8bac31 ci: use a script template to pull and update /ci/repos/mercurial/
Anton Shestakov <av6@dwimlabs.net>
parents: 5370
diff changeset
28 - *prepare_hg
5358
db1dfa818187 ci: print exact version of used Python
Anton Shestakov <av6@dwimlabs.net>
parents: 5352
diff changeset
29 - ("$PYTHON" --version)
5343
f464b29898e3 ci: use set -x to echo the whole run-tests.py command string
Anton Shestakov <av6@dwimlabs.net>
parents: 5342
diff changeset
30 - (cd tests; set -x; HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" /ci/repos/mercurial/tests/run-tests.py --color=always $RUNTEST_ARGS)
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
31
5369
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
32 checks-py2:
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
33 <<: *runtests
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
34 variables:
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
35 RUNTEST_ARGS: "--test-list /tmp/check-tests.txt"
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
36
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
37 checks-py3:
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
38 <<: *runtests
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
39 variables:
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
40 PY: py3
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
41 PYTHON: python3
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
42 RUNTEST_ARGS: "--test-list /tmp/check-tests.txt"
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
43
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
44 tests-py2-cext:
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
45 <<: *runtests
5342
4a958a7bb138 ci: set HGMODULEPOLICY when running specific variants
Anton Shestakov <av6@dwimlabs.net>
parents: 5341
diff changeset
46 variables:
5369
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
47 RUNTEST_ARGS: "--no-rust --blacklist /tmp/check-tests.txt"
5342
4a958a7bb138 ci: set HGMODULEPOLICY when running specific variants
Anton Shestakov <av6@dwimlabs.net>
parents: 5341
diff changeset
48 TEST_HGMODULEPOLICY: "c"
4925
dbeb04ee6679 heptapod-ci: add a --pure variant for the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4924
diff changeset
49
dbeb04ee6679 heptapod-ci: add a --pure variant for the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4924
diff changeset
50 tests-py2-pure:
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
51 <<: *runtests
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
52 variables:
5369
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
53 RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
5342
4a958a7bb138 ci: set HGMODULEPOLICY when running specific variants
Anton Shestakov <av6@dwimlabs.net>
parents: 5341
diff changeset
54 TEST_HGMODULEPOLICY: "py"
4926
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
55
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
56 tests-py3-cext:
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
57 <<: *runtests
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
58 variables:
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
59 PY: py3
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
60 PYTHON: python3
5369
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
61 RUNTEST_ARGS: "--no-rust --blacklist /tmp/check-tests.txt"
5342
4a958a7bb138 ci: set HGMODULEPOLICY when running specific variants
Anton Shestakov <av6@dwimlabs.net>
parents: 5341
diff changeset
62 TEST_HGMODULEPOLICY: "c"
4926
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
63
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
64 tests-py3-pure:
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
65 <<: *runtests
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
66 variables:
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
67 PY: py3
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
68 PYTHON: python3
5369
2295818ec738 ci: replace flake8 job by checks-py{2,3} (with more than flake8)
Anton Shestakov <av6@dwimlabs.net>
parents: 5368
diff changeset
69 RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
5342
4a958a7bb138 ci: set HGMODULEPOLICY when running specific variants
Anton Shestakov <av6@dwimlabs.net>
parents: 5341
diff changeset
70 TEST_HGMODULEPOLICY: "py"
4986
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
71
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
72 doc:
5678
4737d3db1671 heptapod-ci: new address for the evolve-doc base image
Georges Racinet <georges.racinet@octobus.net>
parents: 5677
diff changeset
73 image: registry.heptapod.net/mercurial/ci-images/py3-evolve-doc
4986
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
74 script:
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
75 - cd docs/
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
76 - make
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
77 variables:
5655
1aec5a3be808 docs: properly capitalize LANG value
Anton Shestakov <av6@dwimlabs.net>
parents: 5564
diff changeset
78 LANG: en_US.UTF-8
5662
bec8a04d2f6a docs: build using py3 image
Anton Shestakov <av6@dwimlabs.net>
parents: 5655
diff changeset
79 PYTHON: python3
5359
f4d991ac2cd6 ci: add /ci/repos/mercurial to $PYTHONPATH for docs
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
80 PYTHONPATH: "/ci/repos/mercurial:$PYTHONPATH"
5662
bec8a04d2f6a docs: build using py3 image
Anton Shestakov <av6@dwimlabs.net>
parents: 5655
diff changeset
81 SPHINXBUILD: python3 -m sphinx -b html
4986
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
82 artifacts:
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
83 paths:
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
84 - html/*
5838
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
85
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
86 sdist:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
87 stage: .post
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
88 image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
89 script:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
90 - python3 setup.py sdist
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
91 artifacts:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
92 paths:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
93 - dist/*
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
94 only:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
95 - tags