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