replace all F_DUPFD_CLOEXEC with os_dupfd_cloexec()
[mesa.git] / .gitlab-ci.yml
index 68db1eb5e9f944a9604017d067a1385ec8780d06..dd4c2a8951b7ce89b9a3ccbd535dc2e448bc2b7a 100644 (file)
@@ -9,6 +9,7 @@ include:
   - local: '.gitlab-ci/test-source-dep.yml'
 
 stages:
+  - deploy
   - container
   - container-2
   - meson-x86_64
@@ -23,6 +24,18 @@ stages:
   - virgl
   - success
 
+pages:
+  image: alpine
+  stage: deploy
+  script:
+  - apk --no-cache add py3-pip
+  - pip3 install sphinx sphinx_rtd_theme
+  - sphinx-build -b html docs public
+  artifacts:
+    paths:
+    - public
+  only:
+  - master
 
 # When to automatically run the CI
 .ci-run-policy:
@@ -231,13 +244,13 @@ x86_test-base:
 x86_test-gl:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-06-03"
+    FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-06-04"
 
 # Debian 10 based x86 test image for VK
 x86_test-vk:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-06-02"
+    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-06-02-gles"
 
 # Debian 9 based x86 build image (old LLVM)
 x86_build_old:
@@ -268,18 +281,39 @@ arm_build:
   needs:
     - arm_build
 
-# x86 image with ARM rootfses for baremetal testing.
-arm_test:
-  extends: x86_build-base
+# Debian 10 based x86 baremetal image base
+arm_test-base:
+  extends:
+    - .fdo.container-build@debian
+    - .container
+  variables:
+    FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-09-rsync"
+
+.use-arm_test-base:
+  extends:
+    - arm_test-base
+    - .ci-run-policy
+  stage: container-2
   variables:
-    FDO_DISTRIBUTION_TAG: &arm_test "2020-06-01"
+    BASE_TAG: *arm_test-base
+    FDO_BASE_IMAGE: "$CI_REGISTRY_IMAGE/debian/arm_test-base:$BASE_TAG"
+  needs:
+    - arm_test-base
 
-.use-arm_test:
+# x86 image with ARM64 rootfs for baremetal testing.
+arm64_test:
+  extends:
+    - .use-arm_test-base
+  variables:
+    FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-09-rsync"
+
+.use-arm64_test:
   variables:
-    TAG: *arm_test
-  image: "$CI_REGISTRY_IMAGE/debian/arm_test:$TAG"
+    TAG: *arm64_test
+  image: "$CI_REGISTRY_IMAGE/debian/arm64_test:$TAG"
   needs:
-    - arm_test
+    - arm_test-base
+    - arm64_test
 
 # Native Windows docker builds
 #
@@ -524,7 +558,7 @@ meson-clang:
     CC: "ccache clang-9"
     CXX: "ccache clang++-9"
 
-meson-windows-vs2019:
+.meson-windows-vs2019:
   extends:
     - .build-windows
     - .use-windows_build_vs2019
@@ -669,8 +703,6 @@ meson-mingw32-x86_64:
     name: "mesa_${CI_JOB_NAME}"
     paths:
       - results/
-  dependencies:
-    - meson-testing
 
 .test-gl:
   extends:
@@ -684,6 +716,8 @@ meson-mingw32-x86_64:
     - meson-testing
     - x86_test-base
     - x86_test-gl
+  dependencies:
+    - meson-testing
 
 .test-vk:
   extends:
@@ -697,6 +731,8 @@ meson-mingw32-x86_64:
     - meson-testing
     - x86_test-base
     - x86_test-vk
+  dependencies:
+    - meson-testing
 
 .piglit-test:
   extends:
@@ -838,6 +874,7 @@ virgl-gles31:
     DEQP_RUNNER_OPTIONS: "--timeout 120"
     MESA_GLES_VERSION_OVERRIDE: "3.1"
     MESA_GLSL_VERSION_OVERRIDE: "310"
+    MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
   extends: virgl-gles2
 
 # Rules for tests that should not be present in MRs or the main
@@ -861,13 +898,14 @@ arm64_a630_gles2:
     BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
     DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
     DEQP_SKIPS: deqp-freedreno-a630-skips.txt
+    GIT_STRATEGY: none
     NIR_VALIDATE: 0
     DEQP_EXPECTED_RENDERER: FD630
     DEQP_NO_SAVE_RESULTS: ""
   tags:
     - google-freedreno-cheza
   script:
-    - .gitlab-ci/bare-metal/cros-servo.sh
+    - ./install/bare-metal/cros-servo.sh
 
 arm64_a630_gles31:
   extends: arm64_a630_gles2
@@ -910,9 +948,36 @@ arm64_a630_gmem:
     FD_MESA_DEBUG: nobypass
     NIR_VALIDATE: 1
 
+arm64_a630_vk:
+  extends: arm64_a630_gles2
+  variables:
+    DEQP_VER: vk
+    CI_NODE_INDEX: 1
+    CI_NODE_TOTAL: 50
+    VK_DRIVER: freedreno
+    # Force binning in the main run, which makes sure we render at
+    # least 2 bins.  This is the path that impacts the most different
+    # features.  However, we end up with flaky results in
+    # dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
+    TU_DEBUG: forcebin
+
+# Do a separate sysmem pass over the testcases that really affect sysmem
+# rendering.  This is currently very flaky, leave it as an option for devs
+# to click play on in their branches.
+arm64_a630_vk_sysmem:
+  extends:
+    - arm64_a630_vk
+  variables:
+    CI_NODE_INDEX: 1
+    CI_NODE_TOTAL: 10
+    DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
+    DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt
+    TU_DEBUG: sysmem
+
 .baremetal-test:
   extends:
     - .ci-run-policy
+    - .test
   stage: test
   artifacts:
     when: always
@@ -924,7 +989,7 @@ arm64_a630_gmem:
 arm64_a306_gles2:
   extends:
     - .baremetal-test
-    - .use-arm_test
+    - .use-arm64_test
     - .freedreno-rules
   variables:
     BM_KERNEL: /lava-files/Image.gz
@@ -932,6 +997,7 @@ arm64_a306_gles2:
     BM_ROOTFS: /lava-files/rootfs-arm64
     BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
     FLAKES_CHANNEL: "#freedreno-ci"
+    BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
     DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
     DEQP_SKIPS: deqp-freedreno-a307-skips.txt
     DEQP_VER: gles2
@@ -941,9 +1007,10 @@ arm64_a306_gles2:
     DEQP_NO_SAVE_RESULTS: 1
     # NIR_VALIDATE=0 left intentionally unset as a3xx is fast enough at its small testsuite.
   script:
-    - .gitlab-ci/bare-metal/fastboot.sh
+    - ./install/bare-metal/fastboot.sh
   needs:
-    - arm_test
+    - arm_test-base
+    - arm64_test
     - arm_build
     - meson-arm64
   tags:
@@ -968,7 +1035,7 @@ arm64_a306_gles3_options:
     DEQP_VER: gles3
   script:
     # Check that the non-constbuf UBO case works.
-    - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" .gitlab-ci/bare-metal/fastboot.sh
+    - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
 
 arm64_a530_gles2:
   extends: