annotate .gitlab-ci.yml @ 6798:f46913e52954 mercurial-6.7

test-compat: create a compatibility branch for Mercurial 6.7
author Anton Shestakov <av6@dwimlabs.net>
date Wed, 26 Jun 2024 13:44:37 +0400
parents 76c2f08b57ee
children 43b1fcb4055c
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
6776
76c2f08b57ee ci: pull the hg clone explicitly from m-s.o only
Anton Shestakov <av6@dwimlabs.net>
parents: 6750
diff changeset
2 - hg pull -R /ci/repos/mercurial/ https://repo.mercurial-scm.org/hg
6146
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
3 - hg_branch=${HG_BRANCH:-$(tests/testlib/map-hg-rev.sh "$(hg identify --branch)")}
5541
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
6151
90067fe2df5d ci: default to python3
Anton Shestakov <av6@dwimlabs.net>
parents: 6146
diff changeset
13 - jobs=$(python3 -c 'import multiprocessing; print(multiprocessing.cpu_count())')
5076
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:
6151
90067fe2df5d ci: default to python3
Anton Shestakov <av6@dwimlabs.net>
parents: 6146
diff changeset
18 PY: py3
90067fe2df5d ci: default to python3
Anton Shestakov <av6@dwimlabs.net>
parents: 6146
diff changeset
19 PYTHON: python3
5341
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
6798
f46913e52954 test-compat: create a compatibility branch for Mercurial 6.7
Anton Shestakov <av6@dwimlabs.net>
parents: 6776
diff changeset
29 - ("$PYTHON" --version)
f46913e52954 test-compat: create a compatibility branch for Mercurial 6.7
Anton Shestakov <av6@dwimlabs.net>
parents: 6776
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-py3:
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
4926
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
37 tests-py3-cext:
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
38 <<: *runtests
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
39 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
40 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
41 TEST_HGMODULEPOLICY: "c"
4926
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
42
0fad1d376814 heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4925
diff changeset
43 tests-py3-pure:
5341
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
44 <<: *runtests
efb8ae4419b2 ci: use a template + variables for defining tests
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
45 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
46 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
47 TEST_HGMODULEPOLICY: "py"
4986
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
48
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
49 doc:
5678
4737d3db1671 heptapod-ci: new address for the evolve-doc base image
Georges Racinet <georges.racinet@octobus.net>
parents: 5677
diff changeset
50 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
51 script:
6140
213711ca7653 ci: use the top-level Makefile to build docs
Anton Shestakov <av6@dwimlabs.net>
parents: 6139
diff changeset
52 - make doc
4986
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
53 variables:
5655
1aec5a3be808 docs: properly capitalize LANG value
Anton Shestakov <av6@dwimlabs.net>
parents: 5564
diff changeset
54 LANG: en_US.UTF-8
5359
f4d991ac2cd6 ci: add /ci/repos/mercurial to $PYTHONPATH for docs
Anton Shestakov <av6@dwimlabs.net>
parents: 5076
diff changeset
55 PYTHONPATH: "/ci/repos/mercurial:$PYTHONPATH"
4986
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
56 artifacts:
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
57 paths:
1214f3d085a9 ci: add job to build and archive the documentation
Boris Feld <boris.feld@octobus.net>
parents: 4966
diff changeset
58 - html/*
5838
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
59
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
60 sdist:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
61 stage: .post
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
62 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
63 script:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
64 - 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
65 artifacts:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
66 paths:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
67 - dist/*
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
68 only:
c0ed8e574638 ci: build sdist tarball as a post step (only for tagged revisions)
Anton Shestakov <av6@dwimlabs.net>
parents: 5678
diff changeset
69 - tags
6146
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
70
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
71 .windows_runtests_template: &windows_runtests
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
72 before_script:
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
73 - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.t > C:/Temp/check-tests.txt'
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
74 script:
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
75 - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && tests/testlib/update-hg-repo.sh C:/Temp/hg'
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
76 - >
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
77 C:/MinGW/msys/1.0/bin/sh.exe --login -c '
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
78 cd "$OLDPWD" &&
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
79 evo_branch=$(hg identify --branch) &&
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
80 hg_branch=${HG_BRANCH:-$(tests/testlib/map-hg-rev.sh "$evo_branch")} &&
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
81 hg -R C:/Temp/hg update "$hg_branch" &&
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
82 hg_rev=$(hg log -R C:/Temp/hg -r . -T "\{node\}") &&
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
83 echo testing with mercurial branch="$hg_branch", revision="$hg_rev"'
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
84 - Invoke-Expression "$Env:PYTHON --version"
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
85 - echo "$Env:RUNTEST_ARGS"
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
86 - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGMODULEPOLICY="$TEST_HGMODULEPOLICY" $PYTHON C:/Temp/hg/tests/run-tests.py --color=always $RUNTEST_ARGS'
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
87
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
88 windows-py3:
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
89 <<: *windows_runtests
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
90 tags:
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
91 - windows
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
92 variables:
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
93 PYTHON: py -3
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
94 RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt"
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
95 TEST_HGMODULEPOLICY: "c"
74665d83fb3b branching: merge stable into default
Anton Shestakov <av6@dwimlabs.net>
parents: 6141
diff changeset
96 when: manual
6152
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
97
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
98 deb:
6695
75c048fdcd09 ci: upgrade building .debs to v2.0 image
Anton Shestakov <av6@dwimlabs.net>
parents: 6414
diff changeset
99 image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd:v2.0
6152
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
100 script:
6413
f1dd77073bca ci: install lintian in deb job
Anton Shestakov <av6@dwimlabs.net>
parents: 6193
diff changeset
101 - apt-get update && apt-get -yq install devscripts equivs lintian --no-install-recommends
6152
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
102 - mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
103 - version=$($PYTHON setup.py --version)
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
104 - debversion="$version+hg$(date +%Y%m%d)+$(hg log -r . -T '{node|short}')"
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
105 - make deb-prepare
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
106 - mkdir -p debs
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
107 - mv ../mercurial-evolve_$version.orig debs/mercurial-evolve_$debversion.orig
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
108 - cd debs/mercurial-evolve_$debversion.orig
6414
89f78b4288e9 ci: set builder full name and email in environment variables
Anton Shestakov <av6@dwimlabs.net>
parents: 6413
diff changeset
109 - debchange --newversion "$debversion-1" "automated build"
6152
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
110 - debuild --unsigned-source --unsigned-changes --build=binary
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
111 - dpkg --contents ../mercurial-evolve_$debversion-1_all.deb
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
112 variables:
6414
89f78b4288e9 ci: set builder full name and email in environment variables
Anton Shestakov <av6@dwimlabs.net>
parents: 6413
diff changeset
113 DEBEMAIL: evolve-testers@mercurial-scm.org
89f78b4288e9 ci: set builder full name and email in environment variables
Anton Shestakov <av6@dwimlabs.net>
parents: 6413
diff changeset
114 DEBFULLNAME: Evolve CI Package Builder
6152
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
115 DEBIAN_FRONTEND: noninteractive
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
116 DEB_BUILD_OPTIONS: nocheck nodoc
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
117 artifacts:
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
118 paths:
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
119 - debs/*.build
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
120 - debs/*.buildinfo
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
121 - debs/*.changes
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
122 - debs/*.deb
0d53a8d4170b ci: add a manual job to build a .deb package
Anton Shestakov <av6@dwimlabs.net>
parents: 6151
diff changeset
123 when: manual