# repository's registry will be used there as well.
variables:
UPSTREAM_REPO: mesa/mesa
- DEBIAN_TAG: "2019-10-22"
- DEBIAN_ARM64_TAG: "arm64v8-2019-10-22"
+ DEBIAN_TAG: "2019-10-30"
+ DEBIAN_ARM64_TAG: "arm64v8-2019-10-23"
STRETCH_TAG: "2019-09-18"
DEBIAN_VERSION: buster-slim
STRETCH_VERSION: stretch-slim
file: '/templates/debian.yml'
include:
- - local: '/.gitlab-ci/lava-gitlab-ci.yml'
+ - local: '.gitlab-ci/lava-gitlab-ci.yml'
stages:
- container
# When to automatically run the CI
.ci-run-policy:
only:
- - branches@mesa/mesa
- - merge_requests
- - /^ci([-/].*)?$/
+ refs:
+ - branches@mesa/mesa
+ - merge_requests
+ - /^ci([-/].*)?$/
+ changes:
+ - VERSION
+ - bin/**/*
+ # GitLab CI
+ - .gitlab-ci.yml
+ - .gitlab-ci/**/*
+ # Meson
+ - meson*
+ - build-support/**/*
+ - subprojects/**/*
+ # SCons
+ - SConstruct
+ - scons/**/*
+ - common.py
+ # Source code
+ - include/**/*
+ - src/**/*
retry:
max: 2
when:
# BUILD
-.build:
+# Shared between windows and Linux
+.build-common:
extends: .ci-run-policy
stage: build
- cache:
- key: ${CI_JOB_NAME}
- paths:
- - ccache
artifacts:
when: always
paths:
# scons:
- build/*/config.log
- shader-db
+
+# Just Linux
+.build-linux:
+ extends: .build-common
+ tags:
+ - mesa-autoscale
+ cache:
+ key: ${CI_JOB_NAME}
+ paths:
+ - ccache
variables:
CCACHE_COMPILERCHECK: "content"
+ NINJA_FLAGS: "-j8" # autoscale is provisioned at 4 CPUs/job.
+ # kubernetes (the mesa-autoscale runner) always has a clean working
+ # dir, so we can't reuse the git clone, but that also means we don't
+ # need to download any extra history (normally extra history is
+ # needed so that a future fetch can find a shared parent).
+ GIT_DEPTH: 1
+ # Autoscale runners have 300GB of disk (since iops/throughput
+ # scales with disk size!), but we want to leave lots of space for
+ # container caching.
+ CCACHE_SIZE: 20G
# Use ccache transparently, and print stats before/after
before_script:
- export PATH="/usr/lib/ccache:$PATH"
- export CCACHE_BASEDIR="$PWD"
- - export CCACHE_DIR="$PWD/ccache"
- - ccache --max-size=1500M
- - ccache --zero-stats || true
+ - ccache --max-size="$CCACHE_SIZE" || true
- ccache --show-stats || true
after_script:
# In case the install dir is being saved as artifacts, tar it up
- if [ -d install ]; then
tar -cf artifacts/install.tar install;
fi
- - export CCACHE_DIR="$PWD/ccache"
- ccache --show-stats
+.build-windows:
+ extends: .build-common
+ tags:
+ - mesa-windows
+ cache:
+ key: ${CI_JOB_NAME}
+ paths:
+ - subprojects/packagecache
+
.meson-build:
extends:
- - .build
+ - .build-linux
- .use-debian-10:amd64
script:
- .gitlab-ci/meson-build.sh
.scons-build:
extends:
- - .build
+ - .build-linux
- .use-debian-10:amd64
variables:
- SCONSFLAGS: "-j4"
+ SCONSFLAGS: "-j8"
script:
- .gitlab-ci/scons-build.sh
-D gallium-xa=true
-D gallium-nine=true
-D gallium-opencl=disabled
- GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima"
+ GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
LLVM_VERSION: "7"
EXTRA_OPTION: >
-D osmesa=gallium
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
EXTRA_OPTION: >
-D I-love-half-baked-turnips=true
+ NINJA_FLAGS: "-j4"
+ CCACHE_DIR: "$PWD/ccache"
+ CCACHE_SIZE: "1500M"
needs:
- debian-10:arm64
tags:
CC: "ccache clang-8"
CXX: "ccache clang++-8"
+.meson-windows:
+ extends:
+ - .build-windows
+ before_script:
+ - $ENV:ARCH = "x86"
+ - $ENV:VERSION = "2019\Community"
+ script:
+ - cmd /C .gitlab-ci\meson-build.bat
+
scons-swr:
extends: .scons-build
variables: