Requesting feedback for Ubuntu in Salsa CI

Hi!

For nearly a year now, it has been possible to use Salsa CI to test that .deb packaging changes don’t regress anything easily testable in Ubuntu: https://salsa.debian.org/salsa-ci-team/pipeline#experimental-ubuntu-support

Have people here used it? Do you have any feedback?

Hi Otto,

Ubuntu pipelines have been very useful for me, thanks for working on those! I enabled Ubuntu pipelines on salsa for src:autopkgtest and src:isc-kea, and that greatly improved confidence in Ubuntu uploads or uploads to Debian that are expected to also target Ubuntu via a sync.

Thinking on how to further improve things, I currently have a suggestion you probably already heard about from me. When the d/changelog release is UNRELEASED, the only way to get a pipeline run on the latest Ubuntu devel release is to manually specify the release name in the yaml. It would be nicer to be able to specify RELEASE: latest and have the pipeline run whatever ubuntu-distro-info --latest. Not having this makes easy to forget to bump the release name, which needs to happen ever six months. Example of this: https://salsa.debian.org/ci-team/autopkgtest/-/blob/07eb656d26b097028c28ff743f4ea7eb71bc2d01/.gitlab-ci.yml#L145.

1 Like

Do you want to take stab at implementing your idea and submitting a MR?
The code that reads the changelog is at https://salsa.debian.org/salsa-ci-team/pipeline/-/blob/master/salsa-ci.yml#L161-184 and as you can see it currently defaults to Plucky. I am updating it to Questing manually in https://salsa.debian.org/salsa-ci-team/pipeline/-/merge_requests/603 but your knowledge of what the Ubuntu devel container tag names are and how to automatically resolve the latest devel name would be needed to implement full Ubuntu devel name automation.

https://salsa.debian.org/salsa-ci-team/pipeline/-/blob/master/salsa-ci.yml#L161-184

# try to autodetect the target distribution
.get-target-distribution: &get-target-distribution
  - dist=$(dpkg-parsechangelog --show-field=distribution || echo UNRELEASED)
  # if dist is UNRELEASED, try to use 'dch' to guess a sane default.
  # Use plucky by default if VENDOR's value is `ubuntu`.
  - clbak="/tmp/debian.changelog"
  - cp debian/changelog "${clbak}"
  - |
    if [ "$VENDOR" = ubuntu ] && [ "${dist}" = UNRELEASED ]
    then
      dist=plucky
    elif [ "${dist}" = UNRELEASED ]
    then
      dch --release foo || true; dist=$(dpkg-parsechangelog --show-field=distribution || echo UNRELEASED); cat "${clbak}" >debian/changelog;
    fi

Thanks for the pointers @OttoK, I should be able to come up with a MR in the next few days.