# This is the tag of the docker image used for the build jobs. If the
# image doesn't exist yet, the containers-build 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/mesa
  DEBIAN_TAG: "2019-08-09"
  DEBIAN_VERSION: stretch-slim
  DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"

include:
  - project: 'wayland/ci-templates'
    ref: c73dae8b84697ef18e2dbbf4fed7386d9652b0cd
    file: '/templates/debian.yml'

stages:
  - containers-build
  - build+test
  - test


# When to automatically run the CI
.ci-run-policy: &ci-run-policy
  only:
    - branches@mesa/mesa
    - merge_requests
    - /^ci([-/].*)?$/
  retry:
    max: 2
    when:
      - runner_system_failure

.ci-deqp-artifacts: &ci-deqp-artifacts
  artifacts:
    when: always
    untracked: false
    paths:
      # Watch out!  Artifacts are relative to the build dir.
      # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
      - artifacts

# CONTAINERS

debian:
  extends: .debian@container-ifnot-exists
  stage: containers-build
  <<: *ci-run-policy
  variables:
    GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
    DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'


# BUILD

.build:
  <<: *ci-run-policy
  image: $DEBIAN_IMAGE
  stage: build+test
  cache:
    paths:
      - ccache
  artifacts:
    when: always
    paths:
      - _build/meson-logs/*.txt
      # scons:
      - build/*/config.log
      - shader-db
  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"
    - ccache --zero-stats || true
    - ccache --show-stats || true
  after_script:
    # In case the install dir is being saved as artifacts, tar it up
    # so that symlinks and hardlinks aren't each packed separately in
    # the zip file.
    - if [ -d install ]; then
        tar -cf artifacts/install.tar install;
      fi
    - export CCACHE_DIR="$PWD/ccache"
    - ccache --show-stats

.meson-build:
  extends: .build
  script:
    - .gitlab-ci/meson-build.sh

.scons-build:
  extends: .build
  variables:
    SCONSFLAGS: "-j4"
  script:
    - if test -n "$LLVM_VERSION"; then
        export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
      fi
    - scons $SCONS_TARGET
    - eval $SCONS_CHECK_COMMAND

# 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.
#
# We also stick the glvnd build here, since we want non-glvnd in
# meson-main for actual driver CI.
meson-swr-glvnd:
  extends: .meson-build
  variables:
    UNWIND: "true"
    DRI_LOADERS: >
      -D glvnd=true
      -D egl=true
    GALLIUM_ST: >
      -D dri3=true
      -D gallium-vdpau=false
      -D gallium-xvmc=false
      -D gallium-omx=disabled
      -D gallium-va=false
      -D gallium-xa=false
      -D gallium-nine=false
      -D gallium-opencl=disabled
    GALLIUM_DRIVERS: "swr,iris"
    LLVM_VERSION: "6.0"

meson-clang:
  extends: .meson-build
  variables:
    UNWIND: "true"
    DRI_DRIVERS: "auto"
    GALLIUM_DRIVERS: "auto"
    VULKAN_DRIVERS: intel,amd,freedreno
    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

scons-swr:
  extends: .scons-build
  variables:
    SCONS_TARGET: "swr=1"
    SCONS_CHECK_COMMAND: "true"
    LLVM_VERSION: "6.0"

scons-win64:
  extends: .scons-build
  variables:
    SCONS_TARGET: platform=windows machine=x86_64
    SCONS_CHECK_COMMAND: "true"

meson-main:
  extends: .meson-build
  variables:
    UNWIND: "true"
    DRI_LOADERS: >
      -D glx=dri
      -D gbm=true
      -D egl=true
      -D platforms=x11,wayland,drm,surfaceless
    DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
    GALLIUM_ST: >
      -D dri3=true
      -D gallium-extra-hud=true
      -D gallium-vdpau=true
      -D gallium-xvmc=true
      -D gallium-omx=bellagio
      -D gallium-va=true
      -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"
    LLVM_VERSION: "7"
    EXTRA_OPTION: >
      -D osmesa=gallium
      -D tools=all
    MESON_SHADERDB: "true"
    BUILDTYPE: "debugoptimized"
  <<: *ci-deqp-artifacts

meson-clover:
  extends: .meson-build
  variables:
    UNWIND: "true"
    DRI_LOADERS: >
      -D glx=disabled
      -D egl=false
      -D gbm=false
    GALLIUM_ST: >
      -D dri3=false
      -D gallium-vdpau=false
      -D gallium-xvmc=false
      -D gallium-omx=disabled
      -D gallium-va=false
      -D gallium-xa=false
      -D gallium-nine=false
      -D gallium-opencl=icd
  script:
    - export GALLIUM_DRIVERS="r600,radeonsi"
    - .gitlab-ci/meson-build.sh
    - LLVM_VERSION=7 .gitlab-ci/meson-build.sh
    - export GALLIUM_DRIVERS="i915,r600"
    - LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh
    - LLVM_VERSION=4.0 .gitlab-ci/meson-build.sh
    - LLVM_VERSION=5.0 .gitlab-ci/meson-build.sh
    - LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh

meson-vulkan:
  extends: .meson-build
  variables:
    UNWIND: "false"
    DRI_LOADERS: >
      -D glx=disabled
      -D gbm=false
      -D egl=false
      -D platforms=x11,wayland,drm
      -D osmesa=none
    GALLIUM_ST: >
      -D dri3=true
      -D gallium-vdpau=false
      -D gallium-xvmc=false
      -D gallium-omx=disabled
      -D gallium-va=false
      -D gallium-xa=false
      -D gallium-nine=false
      -D gallium-opencl=disabled
    VULKAN_DRIVERS: intel,amd,freedreno
    LLVM_VERSION: "7"
    EXTRA_OPTION: >
      -D vulkan-overlay-layer=true

.meson-cross:
  extends: .meson-build
  variables:
    UNWIND: "false"
    DRI_LOADERS: >
      -D glx=disabled
      -D gbm=false
      -D egl=false
      -D platforms=surfaceless
      -D osmesa=none
    GALLIUM_ST: >
      -D dri3=false
      -D gallium-vdpau=false
      -D gallium-xvmc=false
      -D gallium-omx=disabled
      -D gallium-va=false
      -D gallium-xa=false
      -D gallium-nine=false
      -D llvm=false
  <<: *ci-deqp-artifacts
  script:
    - .gitlab-ci/meson-build.sh

meson-armhf:
  extends: .meson-cross
  variables:
    CROSS: armhf
    VULKAN_DRIVERS: freedreno
    GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
    # Disable the tests since we're cross compiling.
    EXTRA_OPTION: >
      -D build-tests=false
      -D I-love-half-baked-turnips=true
      -D vulkan-overlay-layer=true

meson-arm64:
  extends: .meson-cross
  variables:
    CROSS: arm64
    VULKAN_DRIVERS: freedreno
    GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
    # Disable the tests since we're cross compiling.
    EXTRA_OPTION: >
      -D build-tests=false
      -D I-love-half-baked-turnips=true
      -D vulkan-overlay-layer=true

# While the main point of this build is testing the i386 cross build,
# we also use this one to test some other options that are exclusive
# with meson-main's choices (classic swrast and osmesa)
meson-i386:
  extends: .meson-cross
  variables:
    CROSS: i386
    VULKAN_DRIVERS: intel
    DRI_DRIVERS: "swrast"
    GALLIUM_DRIVERS: "iris"
    # Disable i386 tests, because u_format_tests gets precision
    # failures in dxtn unpacking
    EXTRA_OPTION: >
      -D build-tests=false
      -D vulkan-overlay-layer=true
      -D llvm=false
      -D osmesa=classic

scons-nollvm:
  extends: .scons-build
  variables:
    SCONS_TARGET: "llvm=0"
    SCONS_CHECK_COMMAND: "scons llvm=0 check"

scons-llvm:
  extends: .scons-build
  variables:
    SCONS_TARGET: "llvm=1"
    SCONS_CHECK_COMMAND: "scons llvm=1 check"
    LLVM_VERSION: "3.4"
    # LLVM 3.4 packages were built with an old libstdc++ ABI
    CXX: "g++ -D_GLIBCXX_USE_CXX11_ABI=0"

.deqp-test:
  <<: *ci-run-policy
  stage: test
  image: $DEBIAN_IMAGE
  variables:
    GIT_STRATEGY: none # testing doesn't build anything from source
    DEQP_SKIPS: deqp-default-skips.txt
  script:
    # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
    - rm -rf install
    - tar -xf artifacts/install.tar
    - ./artifacts/deqp-runner.sh
  artifacts:
    when: on_failure
    name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
    paths:
      - results/

test-llvmpipe-gles2:
  parallel: 4
  variables:
    DEQP_VER: gles2
    DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
    LIBGL_ALWAYS_SOFTWARE: "true"
    DEQP_RENDERER_MATCH: "llvmpipe"
  extends: .deqp-test
  dependencies:
    - meson-main

test-softpipe-gles2:
  parallel: 4
  variables:
    DEQP_VER: gles2
    DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
    LIBGL_ALWAYS_SOFTWARE: "true"
    DEQP_RENDERER_MATCH: "softpipe"
    GALLIUM_DRIVER: "softpipe"
  extends: .deqp-test
  dependencies:
    - meson-main

# The GLES2 CTS run takes about 8 minutes of CPU time, while GLES3 is
# 25 minutes.  Until we can get its runtime down, just do a partial
# (every 10 tests) run.
test-softpipe-gles3-limited:
  variables:
    DEQP_VER: gles3
    DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
    LIBGL_ALWAYS_SOFTWARE: "true"
    DEQP_RENDERER_MATCH: "softpipe"
    GALLIUM_DRIVER: "softpipe"
    CI_NODE_INDEX: 1
    CI_NODE_TOTAL: 10
  extends: .deqp-test
  dependencies:
    - meson-main
