[igt-dev] [PATCH i-g-t] Add GitLab's CI/CD configuration

Petri Latvala petri.latvala at intel.com
Mon Oct 22 09:03:32 UTC 2018


On Mon, Oct 22, 2018 at 11:42:03AM +0300, Arkadiusz Hiler wrote:
> The CI/CD pieline is configured the following way:
>  1. Build docker images and add them to repo's registry (manual step for
>     now, automation needs GitLab to be updated).
>  2. Build igt with meson on Debian and Feodra.
>  3. Run `ninja tests` on Fedora.
>  4. Build and publish docs as an artifact, for GitLab Pages.
> 
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Daniel Vetter <daniel at ffwll.ch>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
> ---
>  .gitlab-ci.yml    | 69 +++++++++++++++++++++++++++++++++++++++++++++++
>  Dockerfile.debian | 28 +++++++++++++++++++
>  Dockerfile.fedora | 24 +++++++++++++++++
>  3 files changed, 121 insertions(+)
>  create mode 100644 .gitlab-ci.yml
>  create mode 100644 Dockerfile.debian
>  create mode 100644 Dockerfile.fedora
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> new file mode 100644
> index 00000000..0f3422a0
> --- /dev/null
> +++ b/.gitlab-ci.yml
> @@ -0,0 +1,69 @@
> +image: registry.freedesktop.org/drm/igt-gpu-tools/igt-fedora:latest
> +
> +stages:
> +  - containers
> +  - build
> +  - test
> +  - deploy
> +
> +build:tests-fedora:
> +  stage: build
> +  script:
> +    - meson build
> +    - ninja -C build
> +  artifacts:
> +    paths:
> +      - build
> +
> +build:tests-debian:
> +  image: registry.freedesktop.org/drm/igt-gpu-tools/igt-debian:latest
> +  stage: build
> +  script:
> +    - meson build
> +    - ninja -C build

How about explicitly enabling all optional parts from meson_options?
Otherwise we don't notice breakages in parts that are not built due to
changes in dependencies without changing the image package sets. Does
this actually work now for the debian image, you're not installing
pixman?



-- 
Petri Latvala





> +
> +ninja:test:
> +  stage: test
> +  script:
> +    - ninja -C build test
> +
> +pages:
> +  stage: deploy
> +  script:
> +    - ninja -C build igt-gpu-tools-doc
> +    - cp -r build/docs/reference/igt-gpu-tools/html public
> +  artifacts:
> +    paths:
> +      - public
> +  only:
> +    - master
> +
> +containers:igt-debian:
> +  stage: containers
> +  when: manual
> +  image: docker:stable
> +  services:
> +    - docker:dind
> +  variables:
> +    DOCKER_HOST: tcp://docker:2375
> +    DOCKER_DRIVER: overlay2
> +  script:
> +    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.freedesktop.org
> +    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.freedesktop.org
> +    - docker build -t registry.freedesktop.org/drm/igt-gpu-tools/igt-debian -f Dockerfile.debian .
> +    - docker push registry.freedesktop.org/drm/igt-gpu-tools/igt-debian
> +
> +containers:igt-fedora:
> +  stage: containers
> +  when: manual
> +  image: docker:stable
> +  services:
> +    - docker:dind
> +  variables:
> +    DOCKER_HOST: tcp://docker:2375
> +    DOCKER_DRIVER: overlay2
> +  script:
> +    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.freedesktop.org
> +    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.freedesktop.org
> +    - docker build -t registry.freedesktop.org/drm/igt-gpu-tools/igt-fedora -f Dockerfile.fedora .
> +    - docker push registry.freedesktop.org/drm/igt-gpu-tools/igt-fedora
> diff --git a/Dockerfile.debian b/Dockerfile.debian
> new file mode 100644
> index 00000000..a9f93957
> --- /dev/null
> +++ b/Dockerfile.debian
> @@ -0,0 +1,28 @@
> +FROM debian:stretch-backports
> +
> +RUN apt-get update
> +RUN apt-get install -y \
> +			gcc \
> +			flex \
> +			bison \
> +			pkg-config \
> +			libpciaccess-dev \
> +			libkmod-dev \
> +			libprocps-dev \
> +			libunwind-dev \
> +			libdw-dev \
> +			zlib1g-dev \
> +			liblzma-dev \
> +			libssl-dev \
> +			libcairo-dev \
> +			libudev-dev \
> +			libgsl-dev \
> +			libasound2-dev \
> +			libxmlrpc-core-c3-dev \
> +			libjson-c-dev \
> +			libcurl4-openssl-dev
> +
> +RUN apt-get install -t stretch-backports -y \
> +					meson \
> +					libdrm-dev \
> +					libdrm-intel1
> diff --git a/Dockerfile.fedora b/Dockerfile.fedora
> new file mode 100644
> index 00000000..58efa817
> --- /dev/null
> +++ b/Dockerfile.fedora
> @@ -0,0 +1,24 @@
> +FROM fedora:28
> +
> +RUN dnf install -y gcc \
> +		flex \
> +		meson \
> +		bison  \
> +		json-c \
> +		gtk-doc \
> +		xdotool \
> +		gsl-devel \
> +		kmod-devel \
> +		glib2-devel \
> +		cairo-devel \
> +		procps-devel \
> +		pixman-devel \
> +		libdrm-devel \
> +		openssl-devel \
> +		libudev-devel \
> +		xmlrpc-c-devel \
> +		elfutils-devel \
> +		libunwind-devel \
> +		python-docutils \
> +		libpciaccess-devel \
> +		alsa-lib-devel
> -- 
> 2.17.2
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list