image: $CI_REGISTRY/$CI_PROJECT_PATH/build-fedora:commit-$CI_COMMIT_SHA variables: BUILDAH_FORMAT: docker BUILDAH_ISOLATION: chroot MESON_OPTIONS: > -Dlibdrm_drivers=intel,nouveau,amdgpu -Doverlay=enabled -Dchamelium=enabled -Dvalgrind=enabled -Dman=enabled -Dtests=enabled -Drunner=enabled -Dlibunwind=enabled LANG: "C.UTF-8" stages: - build-containers - build - test - containers - deploy ################# BUILD CONTAINERS ####################### build-containers:build-debian: stage: build-containers image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0 script: - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-minimal build-debian-minimal - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian build-debian build-containers:build-debian-armhf: stage: build-containers image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0 script: - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-armhf build-debian-armhf build-containers:build-debian-arm64: stage: build-containers image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0 script: - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-arm64 build-debian-arm64 build-containers:build-debian-mips: stage: build-containers image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0 script: - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-mips build-debian-mips build-containers:build-fedora: stage: build-containers image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0 script: - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-fedora build-fedora #################### BUILD ######################### build:tests-fedora: stage: build script: - meson --prefix=/opt/igt $MESON_OPTIONS build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 - DESTDIR="$PWD/installdir" ninja -C build install - ninja -C build -j${FDO_CI_CONCURRENT:-4} igt-gpu-tools-doc artifacts: paths: - build - installdir build:tests-fedora-no-libunwind: stage: build script: - dnf remove -y libunwind-devel - meson -Dlibunwind=disabled build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 # documentation building is different with meson<0.47 build:tests-fedora-oldest-meson: stage: build script: - dnf remove -y meson - pip install /usr/src/meson-*.tar.gz - meson $MESON_OPTIONS build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 - ninja -C build -j${FDO_CI_CONCURRENT:-4} igt-gpu-tools-doc # ensure igt_nouveau stubs build when nouveau support for libdrm is disabled build:tests-fedora-no-libdrm-nouveau: stage: build script: - meson -Dlibdrm_drivers= build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 build:tests-fedora-clang: stage: build variables: CC: clang script: - meson $MESON_OPTIONS build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 artifacts: paths: - build build:tests-debian-meson: image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian:commit-$CI_COMMIT_SHA stage: build script: - meson $MESON_OPTIONS build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 - cp build/tests/test-list.txt meson-test-list.txt artifacts: paths: - meson-test-list.txt build:tests-debian-minimal: image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-minimal:commit-$CI_COMMIT_SHA stage: build script: - meson -Dtests=disabled -Dlibdrm_drivers="" build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 artifacts: paths: - build build:tests-debian-meson-armhf: image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-armhf:commit-$CI_COMMIT_SHA stage: build script: - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/ - meson --cross-file meson-cross-armhf.txt build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 artifacts: paths: - build build:tests-debian-meson-arm64: image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-arm64:commit-$CI_COMMIT_SHA stage: build script: - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/ - meson --cross-file meson-cross-arm64.txt build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 artifacts: paths: - build build:tests-debian-meson-mips: image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-mips:commit-$CI_COMMIT_SHA stage: build script: - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/ - meson --cross-file meson-cross-mips.txt build - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 artifacts: paths: - build #################### TEST ########################## test:ninja-test: tags: - gstreamer retry: 2 dependencies: - build:tests-fedora stage: test script: meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4} test:ninja-test-clang: tags: - gstreamer retry: 2 dependencies: - build:tests-fedora-clang variables: CC: clang stage: test script: meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4} test:ninja-test-minimal: tags: - gstreamer retry: 2 image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-minimal:commit-$CI_COMMIT_SHA dependencies: - build:tests-debian-minimal stage: test script: meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4} # arm testing temporarily disabled until converted to run on native arm HW # test:ninja-test-arm64: # tags: # - gstreamer # retry: 2 # image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-arm64:commit-$CI_COMMIT_SHA # dependencies: # - build:tests-debian-meson-arm64 # stage: test # script: # - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/ # - env > build/envdump.txt # - meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4} # artifacts: # paths: # - build # when: on_failure # # test:ninja-test-armhf: # tags: # - gstreamer # retry: 2 # image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-armhf:commit-$CI_COMMIT_SHA # dependencies: # - build:tests-debian-meson-armhf # stage: test # script: # - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/ # - env > build/envdump.txt # - meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4} # artifacts: # paths: # - build # when: on_failure test:ninja-test-mips: tags: - gstreamer retry: 2 image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-mips:commit-$CI_COMMIT_SHA dependencies: - build:tests-debian-meson-mips stage: test script: - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/ - env > build/envdump.txt - meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4} artifacts: paths: - build when: on_failure test:list-undocumented-tests: dependencies: - build:tests-fedora stage: test script: .gitlab-ci/list_undocumented_tests.py build/tests/test-list.txt > undocumented_tests.txt artifacts: paths: - undocumented_tests.txt test:verify-blacklists: dependencies: - build:tests-fedora stage: test script: for bl in tests/intel-ci/blacklist{,-pre-merge}.txt; do scripts/verify-blacklist.sh build/runner/igt_runner build/tests "$bl" || exit 1; done ################### DEPLOY ######################### pages: when: manual dependencies: - build:tests-fedora stage: deploy script: - ninja -C build -j${FDO_CI_CONCURRENT:-4} igt-gpu-tools-doc - cp -r build/docs/reference/igt-gpu-tools/html public artifacts: paths: - public only: - master ############## CONTAINERS #################### containers:igt: stage: containers image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0 dependencies: - build:tests-fedora variables: FORCE_REBUILD: 1 script: - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - .gitlab-ci/pull-or-rebuild.sh igt Dockerfile igt