radv: set depth/stencil enable values correctly for the meta clear path
[mesa.git] / .gitlab-ci.yml
index 42a969559ef5deb1c1c6af96b2b47023df286408..5e1f49c8413ab489977cb1925c11a53e144f26bb 100644 (file)
@@ -1,16 +1,25 @@
 variables:
   FDO_UPSTREAM_REPO: mesa/mesa
+  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 | sh -
+          set +o xtrace
 
 include:
   - project: 'freedesktop/ci-templates'
-    ref: 59de540b620c45739871d1a073d76d5521989d11
+    ref: &ci-templates-sha 52dd4a94044449c8481d18dcdc221a3c636366d2
     file: '/templates/debian.yml'
+  - project: 'freedesktop/ci-templates'
+    ref: *ci-templates-sha
+    file: '/templates/alpine.yml'
   - local: '.gitlab-ci/lava-gitlab-ci.yml'
   - local: '.gitlab-ci/test-source-dep.yml'
 
 stages:
   - container+docs
   - container-2
+  - git-archive
+  - deploy
   - meson-x86_64
   - scons
   - meson-misc
@@ -21,13 +30,13 @@ stages:
   - radv
   - lima
   - virgl
-  - deploy
   - success
 
 .docs-base:
+  extends: .ci-run-policy
   image: alpine
   script:
-  - apk --no-cache add py3-pip
+  - apk --no-cache add py3-pip graphviz
   - pip3 install sphinx sphinx_rtd_theme
   - sphinx-build -b html docs public
 
@@ -37,23 +46,26 @@ pages:
   artifacts:
     paths:
     - public
-  only:
-    refs:
-    - master@mesa/mesa
-    changes:
-    - docs/**/*
-    - .gitlab-ci.yml
+  rules:
+    - if: '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == "master"'
+      changes: &docs-or-ci
+      - docs/**/*
+      - .gitlab-ci.yml
+      when: always
+    # Other cases default to never
 
 test-docs:
   extends: .docs-base
   stage: container+docs
-  except:
-    refs:
-    - master@mesa/mesa
-  only:
-    changes:
-    - docs/**/*
-    - .gitlab-ci.yml
+  rules:
+    - if: '$CI_PROJECT_NAMESPACE == "mesa"'
+      when: never
+    - if: '$GITLAB_USER_LOGIN == "marge-bot"'
+      changes: *docs-or-ci
+      when: on_success
+    - changes: *docs-or-ci
+      when: manual
+    # Other cases default to never
 
 # When to automatically run the CI
 .ci-run-policy:
@@ -93,11 +105,15 @@ test-docs:
 success:
   stage: success
   image: debian:stable-slim
-  only:
-    - merge_requests
-  except:
-    changes:
-      *all_paths
+  rules:
+    - if: '$CI_PROJECT_NAMESPACE == "mesa"'
+      when: never
+    - if: '$GITLAB_USER_LOGIN == "marge-bot"'
+      changes: *docs-or-ci
+      when: never
+    - changes: *all_paths
+      when: never
+    - when: on_success
   variables:
     GIT_STRATEGY: none
   script:
@@ -297,7 +313,7 @@ arm_build:
     - .fdo.container-build@debian@arm64v8
     - .container
   variables:
-    FDO_DISTRIBUTION_TAG: &arm_build "2020-06-22-tracie"
+    FDO_DISTRIBUTION_TAG: &arm_build "2020-07-07"
 
 .use-arm_build:
   variables:
@@ -358,7 +374,7 @@ arm64_test:
     WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/windows/x64_build:$WINDOWS_TAG"
     WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows/x64_build:$WINDOWS_TAG"
 
-windows_build_vs2019:
+.windows_build_vs2019:
   extends:
     - .container
     - .windows-docker-vs2019
@@ -380,6 +396,45 @@ windows_build_vs2019:
   needs:
     - windows_build_vs2019
 
+git_archive:
+  extends: .fdo.container-build@alpine
+  stage: container+docs
+  only:
+    - schedules
+  variables:
+    FDO_REPO_SUFFIX: &git-archive-suffix "alpine/git_archive"
+    FDO_DISTRIBUTION_EXEC: 'pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@52dd4a94044449c8481d18dcdc221a3c636366d2'
+    # no need to pull the whole repo to build the container image
+    GIT_STRATEGY: none
+    FDO_DISTRIBUTION_TAG: &git-archive-tag "2020-07-02"
+    FDO_DISTRIBUTION_PACKAGES: git py3-pip
+
+
+# Git archive
+
+make git archive:
+  stage: git-archive
+  extends: .fdo.suffixed-image@alpine
+  only:
+    - schedules
+  # ensure we are running on packet
+  tags:
+    - packet.net
+  variables:
+    FDO_DISTRIBUTION_TAG: *git-archive-tag
+    FDO_REPO_SUFFIX: *git-archive-suffix
+  needs:
+    - git_archive
+
+  script:
+    # compress the current folder
+    - tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
+
+    # login with the JWT token
+    - ci-fairy minio login $CI_JOB_JWT
+    - ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://minio-packet.freedesktop.org/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
+
+
 # BUILD
 
 # Shared between windows and Linux
@@ -503,6 +558,7 @@ meson-classic:
     EXTRA_OPTION: >
       -D osmesa=classic
       -D tools=all
+      -D werror=true
 
 .meson-cross:
   extends:
@@ -546,6 +602,8 @@ meson-armhf:
     LLVM_VERSION: "7"
     EXTRA_OPTION: >
       -D llvm=disabled
+    UPLOAD_FOR_LAVA: 1
+    DEBIAN_ARCH: armhf
   script:
     - .gitlab-ci/meson-build.sh
     - .gitlab-ci/prepare-artifacts.sh
@@ -558,6 +616,8 @@ meson-arm64:
     VULKAN_DRIVERS: "freedreno"
     EXTRA_OPTION: >
       -D llvm=disabled
+    UPLOAD_FOR_LAVA: 1
+    DEBIAN_ARCH: arm64
   script:
     - .gitlab-ci/meson-build.sh
     - .gitlab-ci/prepare-artifacts.sh
@@ -583,7 +643,7 @@ meson-clang:
     CC: "ccache clang-9"
     CXX: "ccache clang++-9"
 
-meson-windows-vs2019:
+.meson-windows-vs2019:
   extends:
     - .build-windows
     - .use-windows_build_vs2019