On Thu, 2020-04-30 at 15:14 +0100, Daniel P. Berrangé wrote: > +++ b/.gitlab-ci.yml > @@ -0,0 +1,171 @@ > + > +stages: > + - prebuild > + - containers > + - build Should this stage be called "builds", just like the previous one is called "containers"? I'm also thinking whether it would be interesting to have a two separate "dist_builds" and "git_builds" stages, just like we have a stage for native builds and another one for cross builds in libvirt. All of this is just me thinking out loud. I'm happy enough with the current solution :) > +.build_git_job_template: &build_git_job_definition > + stage: build > + before_script: > + - export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" > + - export SCRATCH_DIR="/tmp/scratch" > + - export VROOT="$SCRATCH_DIR/vroot" > + - export LD_LIBRARY_PATH="$VROOT/lib" > + - export PATH="$PATH:$VROOT/bin" $VROOT/bin should go first, to make sure we use the binaries we just built and not the ones from the distro packags. > + script: > + - pushd "$PWD" > + - mkdir -p "$SCRATCH_DIR" > + - cd "$SCRATCH_DIR" > + - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git src > + - mkdir build > + - cd build > + - ../src/autogen.sh --prefix="$VROOT" --without-libvirtd I'd just let 'git clone' do its own thing here, especially since for projects like libvirt-dbus that have multiple dependencies when building from source we'll need to differentiate them. > +fedora-30-container: > + <<: *container_job_definition > + variables: > + NAME: fedora-30 As you already mentioned, this should be replaced with fedora-32... > +ubuntu-1604-container: > + <<: *container_job_definition > + variables: > + NAME: ubuntu-1604 ... and this with ubuntu-2004. > +centos-8-build-git: > + <<: *build_git_job_definition > + image: $CI_REGISTRY_IMAGE/ci-centos-8:latest We could invert the two parts of the suffix, in the interest of having the most relevant piece of information first, and call this centos-8-git-build... > +centos-7-build-dist: > + <<: *build_dist_job_definition > + image: $CI_REGISTRY_IMAGE/ci-centos-7:latest and all the other ones *-dist-build. Regarless, you can use the same trick used for container jobs also for build jobs: that is, tweak the templates above so that they look like .build_dist_job_template: &build_dist_job_definition stage: build image: $CI_REGISTRY_IMAGE/ci-$NAME:latest ... .build_git_job_template: &build_git_job_definition stage: build image: $CI_REGISTRY_IMAGE/ci-$NAME:latest ... and then redefine the build jobs as centos-8-build-git: <<: *build_git_job_definition variables: NAME: centos-8 centos-7-build-dist: <<: *build_dist_job_definition variables: NAME: centos-7 and so on. Test pipeline to prove this actually works: https://gitlab.com/abologna/libvirt-python/pipelines/141549490 > +++ b/ci/README.rst > @@ -0,0 +1,12 @@ > +CI job assets > +============= > + > +This directory contains assets used in the automated CI jobs, most > +notably the Dockerfiles used to build container images in which the > +CI jobs then run. > + > +The `refresh` script is used to re-create the Dockerfiles Monospace in reStructuredText looks ``like this``, not `like this`. > using the `lcitool` that is provided by s/that/command that/ or s/that/script that/ > repo `https://gitlab.com/libvirt/libvirt-ci` Remove the backticks and this will be a clickable link. Then leave a blank line between this and the next paragraph. -- Andrea Bolognani / Red Hat / Virtualization