view .gitlab-ci.yml @ 6889:a66cf9008781

obslog: also display patch for rebased changesets This applies the same logic that is used for "merge-diff" to rebased changesets. The successors' content is compared to the content of the predecessors rebased in-memory on the new parents. This highlights the changes that were actually introduced while rebasing (like conflict resolution or API adjustment). As a side effect, obslog now also outputs slightly more diffs for splits, showing what parts of the original big changeset were moved to the smaller split components (but for now it only works for the first few changesets).
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 22 Sep 2024 02:58:54 +0200
parents 120f0ad4646c
children
line wrap: on
line source

.prepare_hg: &prepare_hg
    - hg pull -R /ci/repos/mercurial/ https://repo.mercurial-scm.org/hg
    - hg_branch=${HG_BRANCH:-$(tests/testlib/map-hg-rev.sh "$(hg identify --branch)")}
    - hg -R /ci/repos/mercurial/ update "$hg_branch"
    - hg_rev=$(hg log -R /ci/repos/mercurial/ -r . -T '{node}')
    - echo testing with mercurial branch="$hg_branch", revision="$hg_rev"

pytype:
    image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd:v2.0
    script:
        - *prepare_hg
        - hg clone /ci/repos/mercurial/ /tmp/mercurial-ci/ --noupdate --config phases.publish=no
        - hg -R /tmp/mercurial-ci/ update "$hg_rev"
        - make -C /tmp/mercurial-ci/ local PYTHON=$PYTHON
        - $PYTHON -m pip install --user --break-system-packages --upgrade pytype==2024.1.5
        - (cd /tmp/mercurial-ci/ && ./contrib/setup-pytype.sh)
        - pytype --version
        - pytype --keep-going --jobs auto -P /tmp/mercurial-ci/:hgext3rd hgext3rd
    when: manual

variables:
    PYTHON: python3
    RUNTEST_ARGS: ""
    TEST_HGMODULEPOLICY: "allow"

.runtests_template: &runtests
    image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd:v2.1
    before_script:
        - (cd tests; ls -1 test-check-*.t > /tmp/check-tests.txt)
    script:
        - *prepare_hg
        - ($PYTHON --version)
        - (cd tests; set -x; HGMODULEPOLICY="$TEST_HGMODULEPOLICY" $PYTHON /ci/repos/mercurial/tests/run-tests.py --color=always $RUNTEST_ARGS)

checks-py3:
    <<: *runtests
    image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd:v2.0
    variables:
        RUNTEST_ARGS: "--test-list /tmp/check-tests.txt"
        CI_CLEVER_CLOUD_FLAVOR: S

tests-py3-cext:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--no-rust --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "c"

tests-py3-pure:
    <<: *runtests
    variables:
        RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "py"

tests-py2-6.1:
    <<: *runtests
    image: registry.heptapod.net/mercurial/ci-images/py2-hgext3rd:v1.0
    variables:
        PYTHON: prlimit --nofile=1024:1024 python2
        RUNTEST_ARGS: "--no-rust --blacklist /tmp/check-tests.txt"
        TEST_HGMODULEPOLICY: "c"
        HG_BRANCH: 'max(tag("re:^6\.1"))'
    allow_failure: true

doc:
    image: registry.heptapod.net/mercurial/ci-images/py3-evolve-doc:v2.1
    script:
        - make doc
    variables:
        LANG: en_US.UTF-8
        PYTHONPATH: "/ci/repos/mercurial:$PYTHONPATH"
        CI_CLEVER_CLOUD_FLAVOR: S
    artifacts:
        paths:
            - html/*

sdist:
    stage: .post
    image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd
    script:
        - python3 setup.py sdist
    artifacts:
        paths:
            - dist/*
    only:
        - tags

.windows_runtests_template: &windows_runtests
    before_script:
        - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && ls -1 tests/test-check-*.t > C:/Temp/check-tests.txt'
    script:
        - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && tests/testlib/update-hg-repo.sh C:/Temp/hg'
        - >
          C:/MinGW/msys/1.0/bin/sh.exe --login -c '
          cd "$OLDPWD" &&
          evo_branch=$(hg identify --branch) &&
          hg_branch=${HG_BRANCH:-$(tests/testlib/map-hg-rev.sh "$evo_branch")} &&
          hg -R C:/Temp/hg update "$hg_branch" &&
          hg_rev=$(hg log -R C:/Temp/hg -r . -T "\{node\}") &&
          echo testing with mercurial branch="$hg_branch", revision="$hg_rev"'
        - Invoke-Expression "$Env:PYTHON --version"
        - echo "$Env:RUNTEST_ARGS"
        - 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'

windows-py3:
    <<: *windows_runtests
    tags:
        - windows
    variables:
        PYTHON: py -3
        RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt"
        TEST_HGMODULEPOLICY: "c"
    when: manual

deb:
    image: registry.heptapod.net/mercurial/ci-images/py3-hgext3rd:v2.0
    script:
        - apt-get update && apt-get -yq install devscripts equivs lintian --no-install-recommends
        - mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
        - version=$($PYTHON setup.py --version)
        - debversion="$version+hg$(date +%Y%m%d)+$(hg log -r . -T '{node|short}')"
        - make deb-prepare
        - mkdir -p debs
        - mv ../mercurial-evolve_$version.orig debs/mercurial-evolve_$debversion.orig
        - cd debs/mercurial-evolve_$debversion.orig
        - debchange --newversion "$debversion-1" "automated build"
        - debuild --unsigned-source --unsigned-changes --build=binary
        - dpkg --contents ../mercurial-evolve_$debversion-1_all.deb
    variables:
        DEBEMAIL: evolve-testers@mercurial-scm.org
        DEBFULLNAME: Evolve CI Package Builder
        DEBIAN_FRONTEND: noninteractive
        DEB_BUILD_OPTIONS: nocheck nodoc
    artifacts:
        paths:
            - debs/*.build
            - debs/*.buildinfo
            - debs/*.changes
            - debs/*.deb
    when: manual