1 # This is the tag of the docker image used for the build jobs. If the
2 # image doesn't exist yet, the containers stage generates it.
4 # In order to generate a new image, one should generally change the tag.
5 # While removing the image from the registry would also work, that's not
6 # recommended except for ephemeral images during development: Replacing
7 # an image after a significant amount of time might pull in newer
8 # versions of gcc/clang or other packages, which might break the build
9 # with older commits using the same tag.
11 # After merging a change resulting in generating a new image to the
12 # main repository, it's recommended to remove the image from the source
13 # repository's container registry, so that the image from the main
14 # repository's registry will be used there as well.
15 .templates_sha: &template_sha 567700e483aabed992d0a4fea84994a0472deff6 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
18 - project: 'freedesktop/ci-templates'
21 - '/templates/debian.yml'
22 - '/templates/ci-fairy.yml'
25 FDO_UPSTREAM_REPO: mesa/drm
26 FDO_REPO_SUFFIX: "$BUILD_OS/$BUILD_ARCH"
41 FDO_DISTRIBUTION_VERSION: buster
42 FDO_DISTRIBUTION_PACKAGES: 'build-essential docbook-xsl libatomic-ops-dev libcairo2-dev libcunit1-dev libpciaccess-dev meson ninja-build pkg-config python3 python3-pip python3-wheel python3-setuptools python3-docutils valgrind'
43 FDO_DISTRIBUTION_EXEC: 'pip3 install meson==0.52.1'
44 # bump this tag every time you change something which requires rebuilding the
46 FDO_DISTRIBUTION_TAG: "2021-08-03.0"
66 # Build our base container image, which contains the core distribution, the
67 # toolchain, and all our build dependencies. This will be reused in the build
69 x86_64-debian-container_prep:
73 - .fdo.container-build@debian
74 stage: "Base container"
78 aarch64-debian-container_prep:
82 - .fdo.container-build@debian
85 stage: "Base container"
89 armv7-debian-container_prep:
93 - .fdo.container-build@debian
96 stage: "Base container"
99 FDO_BASE_IMAGE: "arm32v7/debian:$FDO_DISTRIBUTION_VERSION"
101 # Core build environment.
104 MESON_BUILD_TYPE: "-Dbuildtype=debug -Doptimization=0 -Db_sanitize=address,undefined"
106 # OS/architecture-specific variants
107 .build-env-debian-x86_64:
109 - .fdo.suffixed-image@debian
113 - job: x86_64-debian-container_prep
116 .build-env-debian-aarch64:
118 - .fdo.suffixed-image@debian
122 # At least with the versions we have, the LSan runtime makes fork unusably
123 # slow on AArch64, which is bad news since the test suite decides to fork
124 # for every single subtest. For now, in order to get AArch64 builds and
125 # tests into CI, just assume that we're not going to leak any more on
126 # AArch64 than we would on ARMv7 or x86-64.
127 ASAN_OPTIONS: "detect_leaks=0"
131 - job: aarch64-debian-container_prep
134 .build-env-debian-armv7:
136 - .fdo.suffixed-image@debian
142 - job: armv7-debian-container_prep
160 -D freedreno-kgsl=true
173 - ninja -C build test
174 - DESTDIR=$PWD/install ninja -C build install
180 # Full build and test.
183 - .build-env-debian-x86_64
186 aarch64-debian-build:
188 - .build-env-debian-aarch64
193 - .build-env-debian-armv7
199 - if: '$SCHEDULE == "arch-daily"'
202 image: archlinux/archlinux:base-devel
204 - pacman -Syu --noconfirm --needed