mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-12-04 15:44:06 +08:00
5a1c36ce5a
Rather than relying on distro packages, build libwayland and
wayland-protocols from known versions everywhere we need it.
The only place we do not do so but rely on distro packages is the LAVA
rootfs, for which it does not matter right now since the version is
sufficiently new, but this could/should be cleaned up later.
Solved Conflicts:
- .gitlab-ci.yml
- .gitlab-ci/container/build-wayland.sh
- .gitlab-ci/container/debian/x86_test-gl.sh
Signed-off-by: Daniel Stone <daniels@collabora.com>
(cherry picked from commit a2fd507973
)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19928>
883 lines
25 KiB
YAML
883 lines
25 KiB
YAML
variables:
|
|
FDO_UPSTREAM_REPO: mesa/mesa
|
|
MESA_TEMPLATES_COMMIT: &ci-templates-commit 290b79e0e78eab67a83766f4e9691be554fc4afd
|
|
CI_PRE_CLONE_SCRIPT: |-
|
|
set -o xtrace
|
|
/usr/bin/wget -q -O- ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | bash -
|
|
set +o xtrace
|
|
CI_JOB_JWT_FILE: /minio_jwt
|
|
MINIO_HOST: s3.freedesktop.org
|
|
# per-pipeline artifact storage on MinIO
|
|
PIPELINE_ARTIFACTS_BASE: ${MINIO_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
|
|
# per-job artifact storage on MinIO
|
|
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
|
|
# reference images stored for traces
|
|
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${MINIO_HOST}/mesa-tracie-results/$FDO_UPSTREAM_REPO"
|
|
# Individual CI farm status, set to "offline" to disable jobs
|
|
# running on a particular CI farm (ie. for outages, etc):
|
|
FD_FARM: "online"
|
|
|
|
default:
|
|
before_script:
|
|
- echo -e "\e[0Ksection_start:$(date +%s):unset_env_vars_section[collapsed=true]\r\e[0KUnsetting vulnerable environment variables"
|
|
- echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}"
|
|
- unset CI_JOB_JWT
|
|
- echo -e "\e[0Ksection_end:$(date +%s):unset_env_vars_section\r\e[0K"
|
|
|
|
after_script:
|
|
- >
|
|
set +x
|
|
|
|
test -e "${CI_JOB_JWT_FILE}" &&
|
|
export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
|
|
rm "${CI_JOB_JWT_FILE}"
|
|
|
|
include:
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2
|
|
file:
|
|
- '/templates/ci-fairy.yml'
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: *ci-templates-commit
|
|
file:
|
|
- '/templates/debian.yml'
|
|
- '/templates/fedora.yml'
|
|
- local: '.gitlab-ci/test-source-dep.yml'
|
|
|
|
stages:
|
|
- sanity
|
|
- container
|
|
- git-archive
|
|
- build-x86_64
|
|
- build-misc
|
|
- deploy
|
|
|
|
# Generic rule to not run the job during scheduled pipelines
|
|
# ----------------------------------------------------------
|
|
.scheduled_pipelines-rules:
|
|
rules: &ignore_scheduled_pipelines
|
|
if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
|
|
when: never
|
|
|
|
# YAML anchors for rule conditions
|
|
# --------------------------------
|
|
.rules-anchors:
|
|
rules:
|
|
# For Marge Bot
|
|
- if: &is-for-marge '$GITLAB_USER_LOGIN == "marge-bot"'
|
|
when: never
|
|
# Forked project branch
|
|
- if: &is-forked-branch '$CI_PROJECT_NAMESPACE != "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
|
when: manual
|
|
# Forked project branch / pre-merge pipeline not for Marge bot
|
|
- if: &is-forked-branch-or-pre-merge-not-for-marge '$CI_PROJECT_NAMESPACE != "mesa" || ($GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME)'
|
|
when: manual
|
|
# Pipeline runs for the main branch of the upstream Mesa project
|
|
- if: &is-mesa-main '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_DEFAULT_BRANCH'
|
|
when: always
|
|
# Post-merge pipeline
|
|
- if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
|
when: on_success
|
|
# Post-merge pipeline, not for Marge Bot
|
|
- if: &is-post-merge-not-for-marge '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
|
when: on_success
|
|
# Pre-merge pipeline
|
|
- if: &is-pre-merge '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
|
when: on_success
|
|
# Pre-merge pipeline for Marge Bot
|
|
- if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
|
when: on_success
|
|
|
|
|
|
.docs-base:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
- .ci-run-policy
|
|
script:
|
|
- apk --no-cache add graphviz doxygen
|
|
- pip3 install sphinx breathe mako sphinx_rtd_theme
|
|
- docs/doxygen-wrapper.py --out-dir=docs/doxygen_xml
|
|
- sphinx-build -W -b html docs public
|
|
|
|
pages:
|
|
extends: .docs-base
|
|
stage: deploy
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
needs: []
|
|
rules:
|
|
- *ignore_scheduled_pipelines
|
|
- if: *is-mesa-main
|
|
changes: &docs-or-ci
|
|
- docs/**/*
|
|
- .gitlab-ci.yml
|
|
when: always
|
|
# Other cases default to never
|
|
|
|
test-docs:
|
|
extends: .docs-base
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
interruptible: true
|
|
stage: deploy
|
|
needs: []
|
|
rules:
|
|
- *ignore_scheduled_pipelines
|
|
- if: *is-forked-branch
|
|
changes: *docs-or-ci
|
|
when: manual
|
|
# Other cases default to never
|
|
|
|
test-docs-mr:
|
|
extends:
|
|
- test-docs
|
|
needs:
|
|
- sanity
|
|
artifacts:
|
|
expose_as: 'Documentation preview'
|
|
paths:
|
|
- public/
|
|
rules:
|
|
- if: *is-pre-merge
|
|
changes: *docs-or-ci
|
|
when: on_success
|
|
# Other cases default to never
|
|
|
|
# When to automatically run the CI
|
|
.ci-run-policy:
|
|
rules:
|
|
- *ignore_scheduled_pipelines
|
|
# If any files affecting the pipeline are changed, build/test jobs run
|
|
# automatically once all dependency jobs have passed
|
|
- changes: &all_paths
|
|
- VERSION
|
|
- bin/git_sha1_gen.py
|
|
- bin/install_megadrivers.py
|
|
- bin/meson_get_version.py
|
|
- bin/symbols-check.py
|
|
# GitLab CI
|
|
- .gitlab-ci.yml
|
|
- .gitlab-ci/**/*
|
|
# Meson
|
|
- meson*
|
|
- build-support/**/*
|
|
- subprojects/**/*
|
|
# Source code
|
|
- include/**/*
|
|
- src/**/*
|
|
when: on_success
|
|
# Otherwise, build/test jobs won't run
|
|
- when: never
|
|
retry:
|
|
max: 2
|
|
when:
|
|
- runner_system_failure
|
|
|
|
|
|
.ci-deqp-artifacts:
|
|
artifacts:
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
when: always
|
|
untracked: false
|
|
paths:
|
|
# Watch out! Artifacts are relative to the build dir.
|
|
# https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
|
|
- artifacts
|
|
- _build/meson-logs/*.txt
|
|
- _build/meson-logs/strace
|
|
|
|
|
|
# Docker image tag helper templates
|
|
|
|
.incorporate-templates-commit:
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.incorporate-base-tag+templates-commit:
|
|
variables:
|
|
FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.set-image:
|
|
extends:
|
|
- .incorporate-templates-commit
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
|
image: "$MESA_IMAGE"
|
|
|
|
.set-image-base-tag:
|
|
extends:
|
|
- .set-image
|
|
- .incorporate-base-tag+templates-commit
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
|
|
|
|
|
# Build the CI docker images.
|
|
#
|
|
# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the
|
|
# image doesn't exist yet, the container stage job 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.
|
|
|
|
.container:
|
|
stage: container
|
|
extends:
|
|
- .ci-run-policy
|
|
- .incorporate-templates-commit
|
|
rules:
|
|
- *ignore_scheduled_pipelines
|
|
# Run pipeline by default in the main project if any CI pipeline
|
|
# configuration files were changed, to ensure docker images are up to date
|
|
- if: *is-post-merge
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- .gitlab-ci/**/*
|
|
when: on_success
|
|
# Run pipeline by default if it was triggered by Marge Bot, is for a
|
|
# merge request, and any files affecting the pipeline were changed
|
|
- if: *is-pre-merge-for-marge
|
|
changes:
|
|
*all_paths
|
|
when: on_success
|
|
# Run pipeline by default in the main project if it was not triggered by
|
|
# Marge Bot, and any files affecting the pipeline were changed
|
|
- if: *is-post-merge-not-for-marge
|
|
changes:
|
|
*all_paths
|
|
when: on_success
|
|
# Allow triggering jobs manually in other cases if any files affecting the
|
|
# pipeline were changed
|
|
- changes:
|
|
*all_paths
|
|
when: manual
|
|
# Otherwise, container jobs won't run
|
|
- when: never
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: bullseye-slim
|
|
FDO_REPO_SUFFIX: $CI_JOB_NAME
|
|
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
|
# no need to pull the whole repo to build the container image
|
|
GIT_STRATEGY: none
|
|
|
|
.use-base-image:
|
|
extends:
|
|
- .container
|
|
- .incorporate-base-tag+templates-commit
|
|
# Don't want the .container rules
|
|
- .ci-run-policy
|
|
|
|
# Debian 11 based x86 build image base
|
|
debian/x86_build-base:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_build-base "2022-11-22-wayland"
|
|
|
|
.use-debian/x86_build-base:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: "debian/x86_build-base"
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_ARTIFACTS_BASE_TAG: *debian-x86_build-base
|
|
needs:
|
|
- debian/x86_build-base
|
|
|
|
# Debian 11 based x86 main build image
|
|
debian/x86_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_build "2021-07-02-bump-libdrm"
|
|
|
|
.use-debian/x86_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/x86_build"
|
|
MESA_IMAGE_TAG: *debian-x86_build
|
|
needs:
|
|
- debian/x86_build
|
|
|
|
# Debian 11 based i386 cross-build image
|
|
debian/i386_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-i386_build "2021-07-02-bump-libdrm"
|
|
|
|
.use-debian/i386_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/i386_build"
|
|
MESA_IMAGE_TAG: *debian-i386_build
|
|
needs:
|
|
- debian/i386_build
|
|
|
|
# Debian 11 based ppc64el cross-build image
|
|
debian/ppc64el_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-ppc64el_build "2021-07-02-bump-libdrm"
|
|
|
|
.use-debian/ppc64el_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/ppc64el_build"
|
|
MESA_IMAGE_TAG: *debian-ppc64el_build
|
|
needs:
|
|
- debian/ppc64el_build
|
|
|
|
# Debian 11 based s390x cross-build image
|
|
debian/s390x_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-s390x_build "2021-07-02-bump-libdrm"
|
|
|
|
.use-debian/s390x_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/s390x_build"
|
|
MESA_IMAGE_TAG: *debian-s390x_build
|
|
needs:
|
|
- debian/s390x_build
|
|
|
|
# Android NDK cross-build image
|
|
debian/android_build:
|
|
extends:
|
|
- .use-debian/x86_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-android_build "2021-10-26-static-libstdcxx"
|
|
|
|
.use-debian/android_build:
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
MESA_IMAGE_PATH: "debian/android_build"
|
|
MESA_IMAGE_TAG: *debian-android_build
|
|
needs:
|
|
- debian/android_build
|
|
|
|
# Debian 11 based ARM build image
|
|
debian/arm_build:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
tags:
|
|
- aarch64
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm_build "2022-11-16-ci-fairy"
|
|
|
|
.use-debian/arm_build:
|
|
extends:
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/arm_build"
|
|
MESA_IMAGE_TAG: *debian-arm_build
|
|
MESA_ARTIFACTS_TAG: *debian-arm_build
|
|
needs:
|
|
- debian/arm_build
|
|
|
|
|
|
# Fedora 34 based x86 build image
|
|
fedora/x86_build:
|
|
extends:
|
|
- .fdo.container-build@fedora
|
|
- .container
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 34
|
|
MESA_IMAGE_TAG: &fedora-x86_build "2022-11-22-wayland"
|
|
|
|
.use-fedora/x86_build:
|
|
extends:
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "fedora/x86_build"
|
|
MESA_IMAGE_TAG: *fedora-x86_build
|
|
needs:
|
|
- fedora/x86_build
|
|
|
|
|
|
# Git archive
|
|
|
|
make git archive:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: git-archive
|
|
rules:
|
|
- if: *is-scheduled-pipeline
|
|
when: on_success
|
|
# ensure we are running on packet
|
|
tags:
|
|
- packet.net
|
|
script:
|
|
# Compactify the .git directory
|
|
- git gc --aggressive
|
|
# compress the current folder
|
|
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
|
|
|
|
- ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$MINIO_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
|
|
|
|
|
|
# Sanity checks of MR settings and commit logs
|
|
sanity:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: sanity
|
|
rules:
|
|
- if: *is-pre-merge
|
|
when: on_success
|
|
# Other cases default to never
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
script:
|
|
# ci-fairy check-commits --junit-xml=check-commits.xml
|
|
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
|
|
artifacts:
|
|
when: on_failure
|
|
reports:
|
|
junit: check-*.xml
|
|
|
|
|
|
# BUILD
|
|
|
|
# Shared between windows and Linux
|
|
.build-common:
|
|
extends: .ci-run-policy
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
interruptible: true
|
|
artifacts:
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
when: always
|
|
paths:
|
|
- _build/meson-logs/*.txt
|
|
- _build/meson-logs/strace
|
|
- shader-db
|
|
|
|
# Just Linux
|
|
.build-linux:
|
|
extends: .build-common
|
|
variables:
|
|
CCACHE_COMPILERCHECK: "content"
|
|
CCACHE_COMPRESS: "true"
|
|
CCACHE_DIR: /cache/mesa/ccache
|
|
# Use ccache transparently, and print stats before/after
|
|
before_script:
|
|
- !reference [default, before_script]
|
|
- export PATH="/usr/lib/ccache:$PATH"
|
|
- export CCACHE_BASEDIR="$PWD"
|
|
- ccache --show-stats
|
|
after_script:
|
|
- ccache --show-stats
|
|
- !reference [default, after_script]
|
|
|
|
.meson-build:
|
|
extends:
|
|
- .build-linux
|
|
- .use-debian/x86_build
|
|
stage: build-x86_64
|
|
variables:
|
|
LLVM_VERSION: 11
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
|
|
debian-gallium:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "enabled"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D dri3=enabled
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-xvmc=enabled
|
|
-D gallium-omx=bellagio
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=true
|
|
-D gallium-opencl=disabled
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
|
VULKAN_DRIVERS: swrast
|
|
EXTRA_OPTION: >
|
|
-D osmesa=true
|
|
-D tools=all
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
- .gitlab-ci/run-shader-db.sh
|
|
|
|
# Test a release build with -Werror so new warnings don't sneak in.
|
|
debian-release:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "enabled"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D dri3=enabled
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-xvmc=disabled
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
-D llvm=false
|
|
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
|
VULKAN_DRIVERS: "amd"
|
|
BUILDTYPE: "release"
|
|
EXTRA_OPTION: >
|
|
-D osmesa=true
|
|
-D tools=all
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
|
|
fedora-release:
|
|
extends:
|
|
- .meson-build
|
|
- .use-fedora/x86_build
|
|
variables:
|
|
BUILDTYPE: "release"
|
|
C_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-Wno-error=maybe-uninitialized
|
|
-Wno-error=stringop-overread
|
|
-Wno-error=uninitialized
|
|
CPP_ARGS: >
|
|
-Wno-error=array-bounds
|
|
DRI_DRIVERS: "nouveau,i915,i965,r100,r200"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D glvnd=true
|
|
-D platforms=x11,wayland
|
|
EXTRA_OPTION: >
|
|
-D osmesa=true
|
|
-D selinux=true
|
|
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost
|
|
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
|
GALLIUM_ST: >
|
|
-D dri3=enabled
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-xvmc=disabled
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=icd
|
|
-D gles1=disabled
|
|
-D gles2=enabled
|
|
-D llvm=enabled
|
|
-D microsoft-clc=disabled
|
|
-D shared-llvm=enabled
|
|
LLVM_VERSION: ""
|
|
UNWIND: "disabled"
|
|
VULKAN_DRIVERS: "amd,broadcom,freedreno,intel"
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
|
|
debian-android:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/android_build
|
|
variables:
|
|
UNWIND: "disabled"
|
|
C_ARGS: >
|
|
-Wno-error=absolute-value
|
|
-Wno-error=asm-operand-widths
|
|
-Wno-error=constant-conversion
|
|
-Wno-error=enum-conversion
|
|
-Wno-error=extern-initializer
|
|
-Wno-error=initializer-overrides
|
|
-Wno-error=missing-braces
|
|
-Wno-error=sometimes-uninitialized
|
|
-Wno-error=tautological-constant-out-of-range-compare
|
|
-Wno-error=unused-function
|
|
-Wno-error=unused-label
|
|
CPP_ARGS: >
|
|
-Wno-error=deprecated-declarations
|
|
-Wno-error=non-virtual-dtor
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D gbm=disabled
|
|
-D egl=enabled
|
|
-D platforms=android
|
|
EXTRA_OPTION: >
|
|
-D android-stub=true
|
|
-D llvm=disabled
|
|
-D platform-sdk-version=29
|
|
-D valgrind=false
|
|
GALLIUM_ST: >
|
|
-D dri3=disabled
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-xvmc=disabled
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
LLVM_VERSION: ""
|
|
PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files"
|
|
script:
|
|
- PKG_CONFIG_PATH=/usr/local/lib/aarch64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/pkgconfig/ CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio-experimental .gitlab-ci/meson/build.sh
|
|
# x86_64 build:
|
|
# Can't do Intel because gen_decoder.c currently requires libexpat, which
|
|
# is not a dependency that AOSP wants to accept. Can't do Radeon because
|
|
# it requires LLVM, which we don't have an Android build of.
|
|
- PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=intel .gitlab-ci/meson/build.sh
|
|
|
|
.meson-cross:
|
|
extends:
|
|
- .meson-build
|
|
stage: build-misc
|
|
variables:
|
|
UNWIND: "disabled"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D platforms=x11
|
|
-D osmesa=false
|
|
GALLIUM_ST: >
|
|
-D dri3=enabled
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-xvmc=disabled
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
|
|
.meson-arm:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/arm_build
|
|
needs:
|
|
- debian/arm_build
|
|
variables:
|
|
VULKAN_DRIVERS: freedreno,broadcom
|
|
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
|
|
BUILDTYPE: "debugoptimized"
|
|
tags:
|
|
- aarch64
|
|
|
|
debian-armhf:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
variables:
|
|
CROSS: armhf
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D valgrind=false
|
|
MINIO_ARTIFACT_NAME: mesa-armhf
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
debian-arm64:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
variables:
|
|
VULKAN_DRIVERS: "freedreno,broadcom,panfrost"
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D valgrind=false
|
|
MINIO_ARTIFACT_NAME: mesa-arm64
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
debian-arm64-asan:
|
|
extends:
|
|
- debian-arm64
|
|
variables:
|
|
C_ARGS: >
|
|
-Wno-error=stringop-truncation
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D b_sanitize=address
|
|
-D valgrind=false
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
|
MESON_TEST_ARGS: "--no-suite mesa:compiler"
|
|
|
|
debian-arm64-build-test:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
variables:
|
|
VULKAN_DRIVERS: "amd"
|
|
EXTRA_OPTION: >
|
|
-Dtools=panfrost
|
|
script:
|
|
- .gitlab-ci/meson/build.sh
|
|
|
|
debian-clang:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "enabled"
|
|
C_ARGS: >
|
|
-Wno-error=absolute-value
|
|
-Wno-error=constant-conversion
|
|
-Wno-error=constant-logical-operand
|
|
-Wno-error=enum-conversion
|
|
-Wno-error=gnu-variable-sized-type-not-at-end
|
|
-Wno-error=implicit-const-int-float-conversion
|
|
-Wno-error=initializer-overrides
|
|
-Wno-error=misleading-indentation
|
|
-Wno-error=mismatched-tags
|
|
-Wno-error=missing-braces
|
|
-Wno-error=overloaded-virtual
|
|
-Wno-error=self-assign
|
|
-Wno-error=sometimes-uninitialized
|
|
-Wno-error=tautological-constant-compare
|
|
-Wno-error=tautological-constant-out-of-range-compare
|
|
-Wno-error=tautological-overlap-compare
|
|
-Wno-error=typedef-redefinition
|
|
-Wno-error=unused-function
|
|
-Wno-error=unused-private-field
|
|
-Wno-error=xor-used-as-pow
|
|
CPP_ARGS: >
|
|
-Wno-error=c99-designator
|
|
-Wno-error=constant-logical-operand
|
|
-Wno-error=deprecated-declarations
|
|
-Wno-error=implicit-const-int-float-conversion
|
|
-Wno-error=mismatched-tags
|
|
-Wno-error=missing-braces
|
|
-Wno-error=overloaded-virtual
|
|
-Wno-error=self-assign
|
|
-Wno-error=sometimes-uninitialized
|
|
-Wno-error=tautological-constant-out-of-range-compare
|
|
-Wno-error=unused-const-variable
|
|
-Wno-error=unused-private-field
|
|
-Wno-error=unused-value
|
|
-Wno-error=unused-variable
|
|
DRI_LOADERS: >
|
|
-D glvnd=true
|
|
DRI_DRIVERS: "auto"
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental
|
|
CC: clang
|
|
CXX: clang++
|
|
|
|
debian-clover:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "enabled"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D egl=disabled
|
|
-D gbm=disabled
|
|
GALLIUM_DRIVERS: "r600,radeonsi"
|
|
GALLIUM_ST: >
|
|
-D dri3=disabled
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-xvmc=disabled
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=icd
|
|
EXTRA_OPTION: >
|
|
-D valgrind=false
|
|
script:
|
|
- LLVM_VERSION=9 GALLIUM_DRIVERS=r600,swrast .gitlab-ci/meson/build.sh
|
|
- .gitlab-ci/meson/build.sh
|
|
|
|
debian-vulkan:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "disabled"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D gbm=disabled
|
|
-D egl=disabled
|
|
-D platforms=x11,wayland
|
|
-D osmesa=false
|
|
GALLIUM_ST: >
|
|
-D dri3=enabled
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-xvmc=disabled
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
-D b_sanitize=undefined
|
|
-D c_args=-fno-sanitize-recover=all
|
|
-D cpp_args=-fno-sanitize-recover=all
|
|
UBSAN_OPTIONS: "print_stacktrace=1"
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental
|
|
EXTRA_OPTION: >
|
|
-D vulkan-layers=device-select,overlay
|
|
-D build-aco-tests=true
|
|
|
|
debian-i386:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/i386_build
|
|
variables:
|
|
CROSS: i386
|
|
VULKAN_DRIVERS: intel,amd,swrast,virtio-experimental
|
|
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus"
|
|
DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
|
|
EXTRA_OPTION: >
|
|
-D vulkan-layers=device-select,overlay
|
|
|
|
debian-s390x:
|
|
extends:
|
|
- debian-ppc64el
|
|
- .use-debian/s390x_build
|
|
- .s390x-rules
|
|
tags:
|
|
- kvm
|
|
variables:
|
|
CROSS: s390x
|
|
GALLIUM_DRIVERS: "swrast,zink"
|
|
# The lp_test_blend test times out with LLVM 11
|
|
LLVM_VERSION: 9
|
|
VULKAN_DRIVERS: "swrast"
|
|
|
|
debian-ppc64el:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/ppc64el_build
|
|
- .ppc64el-rules
|
|
variables:
|
|
CROSS: ppc64el
|
|
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
|
|
VULKAN_DRIVERS: "amd,swrast"
|