On Wed, 2020-06-17 at 19:06 +0100, Daniel P. Berrangé wrote: [...] > +.script_variables: &script_variables | > + export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" > + export SCRATCH_DIR="/tmp/scratch" > + export VROOT="$SCRATCH_DIR/vroot" > + export CCACHE_DIR="$PWD/ccache" > + export CCACHE_MAXSIZE="500M" > + export PATH="$CCACHE_WRAPPERSDIR:$VROOT/bin:$PATH" > + export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig" > + export XDG_DATA_DIRS="$VROOT/share:/usr/share" > + export GI_TYPELIB_PATH="$VROOT/lib/girepository-1.0" > + > +.git_native_build_job_template: &git_native_build_job_definition > + image: $CI_REGISTRY_IMAGE/ci-$NAME:latest > + stage: builds > + cache: > + paths: > + - ccache/ > + key: "$CI_JOB_NAME" > + before_script: > + - *script_variables > + - export LD_LIBRARY_PATH="$VROOT/lib" Same as libvirt-glib, LD_LIBRARY_PATH can be part of script_variables without affecting the other build jobs. > + script: > + - pushd "$PWD" > + - mkdir -p "$SCRATCH_DIR" > + - cd "$SCRATCH_DIR" > + - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git > + - git clone --depth 1 https://gitlab.com/libvirt/libvirt-glib.git > + - mkdir libvirt/build > + - cd libvirt/build > + - ../autogen.sh --prefix="$VROOT" --without-libvirtd > + - $MAKE install > + - cd ../.. > + - mkdir libvirt-glib/build > + - cd libvirt-glib/build > + - ../autogen.sh --prefix="$VROOT" --without-libvirtd You don't need --without-libvirtd for this one ;) > + - $MAKE install > + - popd > + - mkdir build > + - cd build > + - ../autogen.sh --prefix="$VROOT" --enable-gtk-doc > + - $MAKE install > + - $MAKE dist > + - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip" ; then rpmbuild --nodeps -ta libvirt-sandbox*.tar.gz ; fi We need to run '$MAKE check' as well. I think we missed that for a few projects already: that's fine, we're going to need at least one additional pass to achieve some level of consistency across the namespace, since we're learning new things as we go :) Speaking of which, I suggest that we start organizing the script for git builds a bit differently: script: - mkdir -p "$SCRATCH_DIR" - pushd "$SCRATCH_DIR" - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git - mkdir libvirt/build - pushd libvirt/build - # ... - popd - git clone --depth 1 https://gitlab.com/libvirt/libvirt-glib.git - mkdir libvirt-glib/build - pushd libvirt-glib/build - # ... - popd - popd - mkdir build - cd build - # ... This avoids the unnecessary initial pushd/cd combination, keeps builds for each project neatly separated, and avoids using relative paths for most things. What do you think? [...] > +if ! test -x "$LCITOOL" > +then > + echo "$LCITOOL is not executable" > + exit 1 > +fi > + > +HOSTS=$($LCITOOL hosts | grep -v -E '(freebsd|centos|opensuse)') According to host_vars/libvirt-opensuse-151/main.yml playbooks/build/projects/libvirt-sandbox.yml in libvirt-ci, libvirt-sandbox can be built on openSUSE just fine; I just tried it locally to double-check and had no problems with it either. So, please don't exclude openSUSE here. > +for host in $HOSTS > +do > + if test "$host" = "libvirt-ubuntu-2004" > + then > + $LCITOOL dockerfile $host libvirt+minimal,libvirt-glib,libvirt-sandbox > $host.Dockerfile > + else > + $LCITOOL dockerfile $host libvirt+dist,libvirt-glib+dist,libvirt-sandbox > $host.Dockerfile This fails for me because libvirt-glib+dist is not know to lcitool. I assume you have local patches that add the project - can you please open a MR against libvirt-ci and mention it in the commit message, so that I can check everything locally during review? -- Andrea Bolognani / Red Hat / Virtualization