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

Andrea Bolognani abologna at redhat.com
Wed Jun 17 10:54:56 UTC 2020


On Thu, 2020-06-11 at 17:42 +0100, Daniel P. Berrangé wrote:
>  ci/libvirt-centos-7.Dockerfile                |  88 +++++++
>  ci/libvirt-centos-8.Dockerfile                |  64 +++++
>  ci/libvirt-centos-stream.Dockerfile           |  58 +++++
>  ci/libvirt-debian-10.Dockerfile               |  58 +++++
>  ci/libvirt-debian-9.Dockerfile                |  61 +++++
>  ci/libvirt-debian-sid.Dockerfile              |  58 +++++
>  ci/libvirt-fedora-31.Dockerfile               |  55 +++++
>  ci/libvirt-fedora-32.Dockerfile               |  55 +++++
>  ...rt-fedora-rawhide-cross-mingw32.Dockerfile | 133 ++++++++++
>  ...rt-fedora-rawhide-cross-mingw64.Dockerfile | 133 ++++++++++
>  ci/libvirt-fedora-rawhide.Dockerfile          |  56 +++++
>  ci/libvirt-opensuse-151.Dockerfile            |  57 +++++
>  ci/libvirt-ubuntu-1804.Dockerfile             |  61 +++++
>  ci/libvirt-ubuntu-2004.Dockerfile             |  58 +++++
>  ci/refresh                                    |  36 +++

Please put all the Dockerfiles in ci/containers, as is already the
case for libvirt: the extra directory will ensure things remain tidy
even after we roll out support for Cirrus CI to all projects.

You're also missing the usual README.rst explaining how the
Dockerfiles are generated.

[...]
>  stages:
>    - prebuild
> +  - containers
> +  - builds
> +  - docs

The 'docs' stage is not used anywhere.

> +.script_variables: &script_variables |
> +  export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
> +  export VROOT="$SCRATCH_DIR/vroot"
> +  export CCACHE_BASEDIR="$(pwd)"
> +  export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
> +  export CCACHE_MAXSIZE="500M"
> +  export PATH="$CCACHE_WRAPPERSDIR:$VROOT/bin:$PATH"
> +  export SCRATCH_DIR="/tmp/scratch"
> +  export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig"

You need to define $SCRATCH_DIR before $VROOT, otherwise the latter
will get the wrong value.

I also just realized that the way we set $CCACHE_BASEDIR might not
work for the libvirt build that we perform as a prerequisite, and
since we use the same paths across builds anyway there doesn't seem
to be a point in setting it. So I suggest we have

  export SCRATCH_DIR="/tmp/scratch"
  export VROOT="$SCRATCH_DIR/vroot"
  export CCACHE_DIR="$SCRATCH_DIR/ccache"

> +.git_native_build_job_template: &git_native_build_job_definition
> +  image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
> +  stage: builds
> +  before_script:
> +    - *script_variables
> +    - export LD_LIBRARY_PATH="$VROOT/lib"

You could set $LD_LIBRARY_PATH in script_variables without causing
any issue for the dist-build jobs.

> +.dist_native_build_job_template: &dist_native_build_job_definition
> +  image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
> +  stage: builds
> +  before_script:
> +    - *script_variables

This job is missing GitLab CI cache support, as is the one above.

> +  script:
> +    - mkdir build
> +    - cd build
> +    - ../autogen.sh --prefix="$VROOT"
> +    - $MAKE install
> +    - $MAKE dist

Do we want distcheck here, or is the combination of dist plus
building the RPM package (which effectively runs check inside the
generated tarball) good enough?

> +x64-centos-7-container:
> +  <<: *container_job_definition
> +  variables:
> +    NAME: centos-7
> +
> +x64-centos-8-container:
> +  <<: *container_job_definition
> +  variables:
> +    NAME: centos-8

You have a Dockerfile for CentOS Stream, but you're not building the
corresponding container...

> +x64-centos-8-git-build:
> +  <<: *git_native_build_job_definition
> +  variables:
> +    NAME: centos-8
> +
> +x64-centos-7-dist-build:
> +  <<: *dist_native_build_job_definition
> +  variables:
> +    NAME: centos-7
> +
> +x64-centos-8-dist-build:
> +  <<: *dist_native_build_job_definition
> +  variables:
> +    NAME: centos-8

... or running the corresponding build.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list