From fa6dbf8c048961356fd642df047cb58ab49309b2 Mon Sep 17 00:00:00 2001 From: Arkadiusz Hiler Date: Fri, 28 Sep 2018 16:05:59 +0300 Subject: Add GitLab's CI/CD configuration The CI/CD pipeline 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 Fedora. 3. Run `ninja tests` on Fedora. 4. Build and publish docs as an artifact, for GitLab Pages. v2: Typos and fully-featured meson build. v3: Use variables instead of hard-coding registry and project. Cc: Petri Latvala Cc: Daniel Vetter Signed-off-by: Arkadiusz Hiler Acked-by: Daniel Vetter Acked-by: Petri Latvala --- .gitlab-ci.yml | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .gitlab-ci.yml (limited to '.gitlab-ci.yml') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..a90961b6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,78 @@ +image: registry.freedesktop.org/drm/igt-gpu-tools/igt-fedora:latest +variables: + MESON_OPTIONS: > + -Dwith_libdrm=intel,nouveau,amdgpu + -Dbuild_overlay=true + -Dbuild_audio=true + -Dbuild_chamelium=true + -Dwith_valgrind=true + -Dbuild_man=true + -Dbuild_tests=true + -Dbuild_runner=true + +stages: + - containers + - build + - test + - deploy + +build:tests-fedora: + stage: build + script: + # Feodora does not have peg packaged + - meson $MESON_OPTIONS 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 $MESON_OPTIONS build + - ninja -C build + +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 $CI_REGISTRY + - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian -f Dockerfile.debian . + - docker push $CI_REGISTRY/$CI_PROJECT_PATH/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 $CI_REGISTRY + - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora -f Dockerfile.fedora . + - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora -- cgit v1.2.3