[libvirt-sandbox PATCH] gitlab: introduce CI jobs testing git master & distro libvirt

Daniel P. Berrangé berrange at redhat.com
Fri Jun 19 14:23:20 UTC 2020


On Thu, Jun 18, 2020 at 12:01:13PM +0200, Andrea Bolognani wrote:
> 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.

Yep.

> > +  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 ;)

Opps

> > +    - $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.

Yep will add.

> 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?

For now I'd rather keep the consistent approach we've already used
for other repos. I think there might be better ways to deal with
the builds later, perhaps using cross-repo include files for the
deps.

> > +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.

That was doing a from git build, where as this is doing a from dist
build, but I've found the missing packages for this now.

> > +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?

Yes I have libvirt-ci changes  to submit after this is finalized.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list