| # This is the tag of the docker image used for the build jobs. If the |
| # image doesn't exist yet, the containers stage generates it. |
| # |
| # In order to generate a new image, one should generally change the tag. |
| # While removing the image from the registry would also work, that's not |
| # recommended except for ephemeral images during development: Replacing |
| # an image after a significant amount of time might pull in newer |
| # versions of gcc/clang or other packages, which might break the build |
| # with older commits using the same tag. |
| # |
| # After merging a change resulting in generating a new image to the |
| # main repository, it's recommended to remove the image from the source |
| # repository's container registry, so that the image from the main |
| # repository's registry will be used there as well. |
| variables: |
| UPSTREAM_REPO: mesa/drm |
| DEBIAN_TAG: "2019-11-16" |
| DEBIAN_VERSION: buster-slim |
| DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG" |
| |
| include: |
| - project: 'wayland/ci-templates' |
| ref: 0a9bdd33a98f05af6761ab118b5074952242aab0 |
| file: '/templates/debian.yml' |
| |
| stages: |
| - containers |
| - build |
| |
| |
| # When & how to run the CI |
| .ci-run-policy: |
| except: |
| - schedules |
| retry: |
| max: 2 |
| when: |
| - runner_system_failure |
| |
| # CONTAINERS |
| |
| debian: |
| stage: containers |
| extends: |
| - .ci-run-policy |
| - .debian@container-ifnot-exists |
| variables: |
| GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image |
| DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh' |
| |
| |
| # BUILD |
| |
| .meson-build: |
| stage: build |
| variables: |
| GIT_DEPTH: 10 |
| script: |
| - meson build |
| -D amdgpu=true |
| -D cairo-tests=true |
| -D etnaviv=true |
| -D exynos=true |
| -D freedreno=true |
| -D freedreno-kgsl=true |
| -D intel=true |
| -D libkms=true |
| -D man-pages=true |
| -D nouveau=true |
| -D omap=true |
| -D radeon=true |
| -D tegra=true |
| -D udev=true |
| -D valgrind=auto |
| -D vc4=true |
| -D vmwgfx=true |
| ${CROSS+--cross /cross_file-$CROSS.txt} |
| - ninja -C build |
| - ninja -C build test |
| - DESTDIR=$PWD/install ninja -C build install |
| artifacts: |
| when: on_failure |
| paths: |
| - build/meson-logs/* |
| |
| meson-x86_64: |
| extends: |
| - .ci-run-policy |
| - .meson-build |
| image: $DEBIAN_IMAGE |
| needs: |
| - debian |
| |
| meson-i386: |
| extends: meson-x86_64 |
| variables: |
| CROSS: i386 |
| |
| meson-aarch64: |
| extends: meson-x86_64 |
| variables: |
| CROSS: arm64 |
| |
| meson-armhf: |
| extends: meson-x86_64 |
| variables: |
| CROSS: armhf |
| |
| meson-ppc64el: |
| extends: meson-x86_64 |
| variables: |
| CROSS: ppc64el |
| |
| meson-arch-daily: |
| rules: |
| - if: '$SCHEDULE == "arch-daily"' |
| when: on_success |
| - when: never |
| image: archlinux/base |
| before_script: |
| - pacman -Syu --noconfirm --needed |
| base-devel |
| cairo |
| cunit |
| docbook-xsl |
| libatomic_ops |
| libpciaccess |
| libxslt |
| meson |
| valgrind |
| extends: .meson-build |