Skip to content

Compatibilty with running the Debian Salsa CI locally #1473

@ottok

Description

@ottok

This is halfway between a bug report and a feature request. Since the latest update to https://salsa.debian.org/salsa-ci-team/pipeline#running-the-pipeline-locally this gitlab-ci-local is now advertised as a potential tool for running the Salsa CI pipeline locally. Salsa CI is Debian's custom GitLab CI pipeline for testing Debian packaging git repositories before uploading Debian source packages to Debian archives.

I am however not able to fully run the pipeline locally, as the RELEASE variable does not propagate properly.

Steps to reproduce on a Debian/Ubuntu host:

# Install git-buildpackage
sudo apt install git-buildpackage --no-install-recommends
# Clone Debian packaging sources of an example package
gbp clone --verbose --add-upstream-vcs https://salsa.debian.org/debian/entr.git
cd entr
# Preview seems to work correctly
gitlab-ci-local --file debian/salsa-ci.yml --preview
# The list seems mostly correct, but some test jobs are missing
gitlab-ci-local --file debian/salsa-ci.yml --list
name                              description  stage                       when        allow_failure  needs
extract-source                                 provisioning                on_success  false      
build                                          build                       on_success  false      
build armel                                    build                       on_success  false      
build armhf                                    build                       on_success  false      
build arm64                                    build                       on_success  false      
build riscv64                                  build                       on_success  false      
build source                                   build                       on_success  false      
upgrade from bookworm                          upgrade package and distro  on_success  false      
upgrade from bullseye                          upgrade package and distro  on_success  false      
upgrade from buster                            upgrade package and distro  on_success  false      
upgrade from stretch                           upgrade package and distro  on_success  false
# Run the entire pipeline locally
gitlab-ci-local --file debian/salsa-ci.yml

The first job extract-sources passes correctly, but the second job build fails on:

parsing and downloads finished in 318 ms.
json schema validated in 133 ms
build starting registry.salsa.debian.org/salsa-ci-team/pipeline/base: (build)
Error: Command failed with exit code 125: docker pull registry.salsa.debian.org/salsa-ci-team/pipeline/base:
Error: invalid reference format
    at makeError (/snapshot/firecow-gitlab-ci-local/node_modules/execa/lib/error.js:60:11)
    at <anonymous> (/snapshot/firecow-gitlab-ci-local/node_modules/execa/index.js:118:26)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async i (/snapshot/firecow-gitlab-ci-local/src/job.ts:1003:13)
    at async Ut.pullImage (/snapshot/firecow-gitlab-ci-local/src/job.ts:1016:13)
    at async Ut.start (/snapshot/firecow-gitlab-ci-local/src/job.ts:531:13)
    at async <anonymous> (/snapshot/firecow-gitlab-ci-local/node_modules/p-map/index.js:57:22)

This error is from Podman/Docker as the image is missing the tag. I can get past this by defining the RELEASE manually:

gitlab-ci-local --file debian/salsa-ci.yml --variable RELEASE=unstable build

However, this command will complain about /builds and /gcl-builds not existing and fail:

build $ chmod o-w /builds
build > chmod: cannot access '/builds': No such file or directory
build finished in 14 s  FAIL 1 
build Running after script...

With the steps above to repeat this, could you please advice if you have any tips to make Salsa CI more compatible with gitlab-ci-local?
Or is there something in gitlab-ci-local that could be improved to be able to run Salsa CI as-is?

Thanks for maintaining this tool!

Metadata

Metadata

Assignees

No one assigned

    Labels

    elaborateFurther elaboration is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions