summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2020-04-23 13:31:48 +0100
committerDaniel P. Berrangé <berrange@redhat.com>2020-05-22 12:22:00 +0100
commit27ea968c70dc91ecef9fc8d97815aa15607f990e (patch)
tree372d497ad40695c7813185b3d0dfe17c9a5a7ed8 /.gitlab-ci.yml
parent88d19fb2100aa207d6f2873ed3649e7a008decb1 (diff)
gitlab: introduce CI jobs for building on multiple distros
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml167
1 files changed, 164 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6fd565e..d04c4a0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,61 @@
stages:
- - containers
- prebuild
+ - containers
+ - builds
+
+.container_job_template: &container_job_definition
+ image: docker:stable
+ stage: containers
+ services:
+ - docker:dind
+ before_script:
+ - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
+ - export COMMON_TAG="$CI_REGISTRY/virt-viewer/virt-viewer/ci-$NAME:latest"
+ - docker info
+ - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
+ script:
+ - docker pull "$TAG" || docker pull "$COMMON_TAG" || true
+ - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/$NAME.Dockerfile" ci
+ - docker push "$TAG"
+ after_script:
+ - docker logout
+
+.git_build_job_template: &git_build_job_definition
+ image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+ stage: builds
+ 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="$VROOT/bin:$PATH"
+ - export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig"
+ - export TEST_MAINTAINER=1
+ 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
+ - git clone --depth 1 https://gitlab.gnome.org/GNOME/gtk-vnc.git
+ - cd libvirt
+ - mkdir build
+ - cd build
+ - ../autogen.sh --prefix="$VROOT" --libdir="$VROOT/lib" --without-libvirtd
+ - $MAKE install
+ - cd ../../libvirt-glib
+ - mkdir build
+ - cd build
+ - ../autogen.sh --prefix="$VROOT" --libdir="$VROOT/lib"
+ - $MAKE install
+ - cd ../../gtk-vnc
+ - git submodule update --init
+ - meson build --prefix="$VROOT" --libdir="$VROOT/lib"
+ - $NINJA -C build install
+ - popd
+ - ./autogen.sh --prefix="$VROOT"
+ - $MAKE
+ - $MAKE install
# Check that all commits are signed-off for the DCO.
# Skip on "virt-viewer" namespace, since we only need to run
@@ -15,7 +70,113 @@ check-dco:
variables:
- $CI_PROJECT_NAMESPACE == 'virt-viewer'
-ctr-check-dco:
+centos-7-container:
+ <<: *container_job_definition
+ variables:
+ NAME: centos-7
+
+centos-8-container:
+ <<: *container_job_definition
+ variables:
+ NAME: centos-8
+
+debian-9-container:
+ <<: *container_job_definition
+ variables:
+ NAME: debian-9
+
+debian-10-container:
+ <<: *container_job_definition
+ variables:
+ NAME: debian-10
+
+debian-sid-container:
+ <<: *container_job_definition
+ variables:
+ NAME: debian-sid
+
+fedora-31-container:
+ <<: *container_job_definition
+ variables:
+ NAME: fedora-31
+
+fedora-32-container:
+ <<: *container_job_definition
+ variables:
+ NAME: fedora-32
+
+fedora-rawhide-container:
+ <<: *container_job_definition
+ variables:
+ NAME: fedora-rawhide
+
+opensuse-151-container:
<<: *container_job_definition
variables:
- NAME: check-dco
+ NAME: opensuse-151
+
+ubuntu-1804-container:
+ <<: *container_job_definition
+ variables:
+ NAME: ubuntu-1804
+
+ubuntu-2004-container:
+ <<: *container_job_definition
+ variables:
+ NAME: ubuntu-2004
+
+
+centos-7-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: centos-7
+
+centos-8-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: centos-8
+
+debian-9-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: debian-9
+
+debian-10-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: debian-10
+
+debian-sid-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: debian-sid
+
+fedora-31-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: fedora-31
+
+fedora-32-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: fedora-32
+
+fedora-rawhide-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: fedora-rawhide
+
+opensuse-151-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: opensuse-151
+
+ubuntu-1804-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: ubuntu-1804
+
+ubuntu-2004-git-build:
+ <<: *git_build_job_definition
+ variables:
+ NAME: ubuntu-2004