mesa: only allow EXT_gpu_shader4 in the compatibility profile
[mesa.git] / .gitlab-ci.yml
index 449516ecab2d41b778bdc02f2fd4fd92ce058c5b..3212432d5fac9dbab8bb651ffac1ae0942cacfaa 100644 (file)
 # The format of the tag is "%Y-%m-%d-${counter}" where ${counter} stays
 # at "01" unless you have multiple updates on the same day :)
 variables:
-  UBUNTU_TAG: 2019-03-05-01
-  UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu:$UBUNTU_TAG"
-  UBUNTU_IMAGE_MAIN: "registry.freedesktop.org/mesa/mesa/ubuntu:$UBUNTU_TAG"
+  UPSTREAM_REPO: mesa/mesa
+  DEBIAN_TAG: "2019-04-16"
+  DEBIAN_VERSION: stretch-slim
+  DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
 
-cache:
-  paths:
-    - ccache
+include:
+  - project: 'wayland/ci-templates'
+    ref: c73dae8b84697ef18e2dbbf4fed7386d9652b0cd
+    file: '/templates/debian.yml'
 
 stages:
   - containers-build
@@ -30,54 +32,47 @@ stages:
 
 
 # When to automatically run the CI
-.ci-run-policy:
+.ci-run-policy: &ci-run-policy
   only:
-    - master
+    - branches@mesa/mesa
     - merge_requests
     - /^ci([-/].*)?$/
+  retry:
+    max: 2
+    when:
+      - runner_system_failure
 
 
 # CONTAINERS
 
-ubuntu:
-  extends: .ci-run-policy
+debian:
+  extends: .debian@container-ifnot-exists
   stage: containers-build
-  image: docker:stable
-  services:
-    - docker:dind
+  <<: *ci-run-policy
   variables:
-    DOCKER_HOST: tcp://docker:2375
-    DOCKER_DRIVER: overlay2
-  script:
-    # Enable experimental features such as `docker manifest inspect`
-    - mkdir -p ~/.docker
-    - "echo '{\"experimental\": \"enabled\"}' > ~/.docker/config.json"
-    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
-    # Check if the image (with the specific tag) already exists
-    - docker manifest inspect $UBUNTU_IMAGE && exit || true
-    # Try to re-use the image from the main repository's registry
-    - docker image pull $UBUNTU_IMAGE_MAIN &&
-      docker image tag $UBUNTU_IMAGE_MAIN $UBUNTU_IMAGE &&
-      docker image push $UBUNTU_IMAGE && exit || true
-    - docker build -t $UBUNTU_IMAGE -f .gitlab-ci/Dockerfile.ubuntu .
-    - docker push $UBUNTU_IMAGE
+    GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
+    DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
 
 
 # BUILD
 
 .build:
-  extends: .ci-run-policy
-  image: $UBUNTU_IMAGE
+  <<: *ci-run-policy
+  image: $DEBIAN_IMAGE
   stage: build+test
+  cache:
+    paths:
+      - ccache
   artifacts:
     when: on_failure
     untracked: true
+  variables:
+    CCACHE_COMPILERCHECK: "content"
   # 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"
-    - export CCACHE_COMPILERCHECK=content
     - ccache --zero-stats || true
     - ccache --show-stats || true
   after_script:
@@ -110,7 +105,7 @@ ubuntu:
     - cd _build
     - meson configure
     - ninja -j4
-    - ninja test
+    - LC_ALL=C.UTF-8 ninja test
 
 .scons-build:
   extends: .build
@@ -123,21 +118,6 @@ ubuntu:
     - scons $SCONS_TARGET
     - eval $SCONS_CHECK_COMMAND
 
-autotools:
-  extends: .build
-  variables:
-    MAKEFLAGS: "-j8"
-    LLVM_CONFIG: llvm-config-7
-  script:
-    - mkdir build
-    - cd build
-    - ../autogen.sh
-        --enable-autotools
-        --enable-debug
-        --disable-llvm-shared-libs
-    - make
-    - make check
-
 # NOTE: Building SWR is 2x (yes two) times slower than all the other
 # gallium drivers combined.
 # Start this early so that it doesn't limit the total run time.
@@ -167,8 +147,13 @@ meson-clang:
     UNWIND: "true"
     DRI_DRIVERS: "auto"
     GALLIUM_DRIVERS: "auto"
-    CC: "ccache clang-7"
-    CXX: "ccache clang++-7"
+    CC: "ccache clang-8"
+    CXX: "ccache clang++-8"
+  before_script:
+    - export CCACHE_BASEDIR="$PWD" CCACHE_DIR="$PWD/ccache"
+    - ccache --zero-stats --show-stats || true
+     # clang++ breaks if it picks up the GCC 8 directory without libstdc++.so
+    - apt-get remove -y libgcc-8-dev
 
 meson-vulkan:
   extends: .meson-build
@@ -269,7 +254,7 @@ meson-gallium-drivers-other:
       -D gallium-xa=false
       -D gallium-nine=false
       -D gallium-opencl=disabled
-    GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost"
+    GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima"
     LLVM_VERSION: "5.0"
 
 meson-gallium-clover-llvm:
@@ -307,6 +292,7 @@ meson-gallium-st-other:
       -D gbm=false
     GALLIUM_ST: >
       -D dri3=true
+      -D gallium-extra-hud=true
       -D gallium-vdpau=true
       -D gallium-xvmc=true
       -D gallium-omx=bellagio
@@ -329,7 +315,9 @@ scons-llvm:
   variables:
     SCONS_TARGET: "llvm=1"
     SCONS_CHECK_COMMAND: "scons llvm=1 check"
-    LLVM_VERSION: "3.9"
+    LLVM_VERSION: "3.4"
+    # LLVM 3.4 packages were built with an old libstdc++ ABI
+    CXX: "g++ -D_GLIBCXX_USE_CXX11_ABI=0"
 
 scons-swr:
   extends: .scons-build