131 lines
2.9 KiB
YAML
131 lines
2.9 KiB
YAML
# 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: "2020-11-15"
|
|
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
|
|
libatomic_ops
|
|
libpciaccess
|
|
meson
|
|
valgrind
|
|
python-docutils
|
|
extends: .meson-build
|