variables:
  DRM_CI_PROJECT_PATH: &drm-ci-project-path mesa/mesa
  DRM_CI_COMMIT_SHA: &drm-ci-commit-sha 02337aec715c25dae7ff2479d986f831c77fe536

  UPSTREAM_REPO: https://gitlab.freedesktop.org/drm/kernel.git
  TARGET_BRANCH: drm-next

  IGT_VERSION: 129d5b10baaadea1d6cd6377341c4cb42e7ee6fd

  DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/mesa/deqp-runner.git
  DEQP_RUNNER_GIT_TAG: v0.20.0

  FDO_UPSTREAM_REPO: helen.fornazier/linux   # The repo where the git-archive daily runs
  MESA_TEMPLATES_COMMIT: &ci-templates-commit c6aeb16f86e32525fa630fb99c66c4f3e62fc3cb
  DRM_CI_PROJECT_URL: https://gitlab.freedesktop.org/${DRM_CI_PROJECT_PATH}
  CI_PRE_CLONE_SCRIPT: |-
          set -o xtrace
          curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s ${DRM_CI_PROJECT_URL}/-/raw/${DRM_CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh -o download-git-cache.sh
          bash download-git-cache.sh
          rm download-git-cache.sh
          set +o xtrace
  S3_JWT_FILE: /s3_jwt
  S3_JWT_FILE_SCRIPT: |-
      echo -n '${S3_JWT}' > '${S3_JWT_FILE}' &&
      unset CI_JOB_JWT S3_JWT  # Unsetting vulnerable env variables
  S3_HOST: s3.freedesktop.org
  # This bucket is used to fetch the kernel image
  S3_KERNEL_BUCKET: mesa-rootfs
  # Bucket for git cache
  S3_GITCACHE_BUCKET: git-cache
  # Bucket for the pipeline artifacts pushed to S3
  S3_ARTIFACTS_BUCKET: artifacts
  # per-pipeline artifact storage on MinIO
  PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/${S3_ARTIFACTS_BUCKET}/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
  # per-job artifact storage on MinIO
  JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
  KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG}
  LAVA_TAGS: subset-1-gfx
  # Default priority for non-merge pipelines
  FDO_RUNNER_JOB_PRIORITY_TAG_X86_64: ""  # Empty tags are ignored by gitlab
  FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM: kvm
  FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64: aarch64
  JOB_PRIORITY: 30
  ARTIFACTS_BASE_URL: https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts
  # Python scripts for structured logger
  PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install"


default:
  id_tokens:
    S3_JWT:
      aud: https://s3.freedesktop.org
  before_script:
    - export SCRIPTS_DIR=$(mktemp -d)
    - curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 -O --output-dir "${SCRIPTS_DIR}" "${DRM_CI_PROJECT_URL}/-/raw/${DRM_CI_COMMIT_SHA}/.gitlab-ci/setup-test-env.sh"
    - source ${SCRIPTS_DIR}/setup-test-env.sh
    - eval "$S3_JWT_FILE_SCRIPT"

    - echo -e "\e[0Ksection_start:$(date +%s):drm_ci_download_section[collapsed=true]\r\e[0KDownloading mesa from $DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz"
    - cd $CI_PROJECT_DIR
    - curl --output - $DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz | tar -xz
    - mv mesa-$DRM_CI_COMMIT_SHA/.gitlab-ci* .
    - mv mesa-$DRM_CI_COMMIT_SHA/bin .
    - rm -rf mesa-$DRM_CI_COMMIT_SHA/
    - echo -e "\e[0Ksection_end:$(date +%s):drm_ci_download_section\r\e[0K"

  after_script:
    - >
      set +x

      test -e "${S3_JWT_FILE}" &&
      export S3_JWT="$(<${S3_JWT_FILE})" &&
      rm "${S3_JWT_FILE}"


include:
  - project: 'freedesktop/ci-templates'
    ref: *ci-templates-commit
    file:
      - '/templates/alpine.yml'
      - '/templates/debian.yml'
      - '/templates/fedora.yml'
      - '/templates/ci-fairy.yml'
  - project: *drm-ci-project-path
    ref: *drm-ci-commit-sha
    file:
      - '/.gitlab-ci/build/gitlab-ci.yml'
      - '/.gitlab-ci/container/gitlab-ci.yml'
      - '/.gitlab-ci/farm-rules.yml'
      - '/.gitlab-ci/lava/lava-gitlab-ci.yml'
      - '/.gitlab-ci/test-source-dep.yml'
      - '/.gitlab-ci/test/gitlab-ci.yml'
      - '/src/amd/ci/gitlab-ci-inc.yml'
      - '/src/freedreno/ci/gitlab-ci-inc.yml'
      - '/src/gallium/drivers/crocus/ci/gitlab-ci-inc.yml'
      - '/src/gallium/drivers/llvmpipe/ci/gitlab-ci-inc.yml'
      - '/src/gallium/drivers/nouveau/ci/gitlab-ci-inc.yml'
      - '/src/gallium/drivers/softpipe/ci/gitlab-ci-inc.yml'
      - '/src/gallium/drivers/virgl/ci/gitlab-ci-inc.yml'
      - '/src/gallium/drivers/zink/ci/gitlab-ci-inc.yml'
      - '/src/gallium/frontends/lavapipe/ci/gitlab-ci-inc.yml'
      - '/src/gallium/frontends/rusticl/ci/gitlab-ci.yml'
      - '/src/intel/ci/gitlab-ci-inc.yml'
      - '/src/microsoft/ci/gitlab-ci-inc.yml'
      - '/src/nouveau/ci/gitlab-ci-inc.yml'
      - '/src/virtio/ci/gitlab-ci-inc.yml'
      - 'docs/gitlab-ci.yml'
  - drivers/gpu/drm/ci/image-tags.yml
  - drivers/gpu/drm/ci/container.yml
  - drivers/gpu/drm/ci/static-checks.yml
  - drivers/gpu/drm/ci/build.yml
  - drivers/gpu/drm/ci/test.yml
  - drivers/gpu/drm/ci/check-devicetrees.yml
  - drivers/gpu/drm/ci/kunit.yml
  - 'https://gitlab.freedesktop.org/gfx-ci/lab-status/-/raw/main/lab-status.yml'


stages:
  - sanity
  - container
  - deploy
  - git-archive
  - build-for-tests
  - build-only
  - static-checks
  - kunit
  - code-validation
  - amdgpu
  - i915
  - mediatek
  - meson
  - msm
  - panfrost
  - powervr
  - rockchip
  - software-driver


# YAML anchors for rule conditions
# --------------------------------
.rules-anchors:
  rules:
    # do not duplicate pipelines on merge pipelines
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
      when: never
    # merge pipeline
    - if: &is-merge-attempt $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"
    # post-merge pipeline
    - if: &is-post-merge $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "push"
    # Pre-merge pipeline
    - if: &is-pre-merge $CI_PIPELINE_SOURCE == "merge_request_event"
    # Push to a branch on a fork
    - if: &is-fork-push $CI_PIPELINE_SOURCE == "push"
    # nightly pipeline
    - if: &is-scheduled-pipeline $CI_PIPELINE_SOURCE == "schedule"
    # pipeline for direct pushes that bypassed the CI
    - if: &is-direct-push $CI_PIPELINE_SOURCE == "push" && $GITLAB_USER_LOGIN != "marge-bot"


# Rules applied to every job in the pipeline
.common-rules:
  rules:
    - if: *is-fork-push
      when: manual


.never-post-merge-rules:
  rules:
    - if: *is-post-merge
      when: never


.container+build-rules:
  rules:
    - !reference [.common-rules, rules]
    # Run when re-enabling a disabled farm, but not when disabling it
    - !reference [.disable-farm-mr-rules, rules]
    # Never run immediately after merging, as we just ran everything
    - !reference [.never-post-merge-rules, rules]
    # Build everything in merge pipelines
    - if: *is-merge-attempt
      when: on_success
    # Same as above, but for pre-merge pipelines
    - if: *is-pre-merge
      when: manual
    # Build everything after someone bypassed the CI
    - if: *is-direct-push
      when: manual
    # Build everything in scheduled pipelines
    - if: *is-scheduled-pipeline
      when: on_success
    # Allow building everything in fork pipelines, but build nothing unless
    # manually triggered
    - when: manual


# Repeat of the above but with `when: on_success` replaced with
# `when: delayed` + `start_in:`, for build-only jobs.
# Note: make sure the branches in this list are the same as in
# `.container+build-rules` above.
.build-only-delayed-rules:
  rules:
    - !reference [.common-rules, rules]
    # Run when re-enabling a disabled farm, but not when disabling it
    - !reference [.disable-farm-mr-rules, rules]
    # Never run immediately after merging, as we just ran everything
    - !reference [.never-post-merge-rules, rules]
    # Build everything in merge pipelines
    - if: *is-merge-attempt
      when: delayed
      start_in: &build-delay 5 minutes
    # Same as above, but for pre-merge pipelines
    - if: *is-pre-merge
      when: manual
    # Build everything after someone bypassed the CI
    - if: *is-direct-push
      when: manual
    # Build everything in scheduled pipelines
    - if: *is-scheduled-pipeline
      when: delayed
      start_in: *build-delay
    # Allow building everything in fork pipelines, but build nothing unless
    # manually triggered
    - when: manual


.ci-deqp-artifacts:
  artifacts:
    name: "${CI_PROJECT_NAME}_${CI_JOB_NAME}"
    when: always
    untracked: false
    paths:
      # Watch out!  Artifacts are relative to the build dir.
      # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
      - artifacts
      - _build/meson-logs/*.txt
      - _build/meson-logs/strace


python-artifacts:
  variables:
    GIT_DEPTH: 10


# Git archive
make-git-archive:
  extends:
    - .fdo.ci-fairy
  stage: git-archive
  rules:
    - !reference [.scheduled_pipeline-rules, rules]
  tags:
    - $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
  script:
    # Remove drm-ci files we just added
    - rm -rf .gitlab-ci.*
    - rm -rf ci

    # Compactify the .git directory
    - git gc --aggressive
    # compress the current folder
    - tar -cvzf ../$CI_PROJECT_NAME.tar.gz .

    # Use id_tokens for JWT auth
    - ci-fairy s3cp --token-file "${S3_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/${S3_GITCACHE_BUCKET}/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz


# Sanity checks of MR settings and commit logs
sanity:
  extends:
    - .fdo.ci-fairy
  stage: sanity
  tags:
    - $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
  rules:
    - if: *is-pre-merge
      when: on_success
    - when: never
  variables:
    GIT_STRATEGY: none
  script:
    # ci-fairy check-commits --junit-xml=check-commits.xml
    # - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
    - |
      set -eu
      image_tags=(
        ALPINE_X86_64_LAVA_SSH_TAG
        CONTAINER_TAG
        DEBIAN_BASE_TAG
        DEBIAN_BUILD_TAG
        DEBIAN_PYUTILS_TAG
        DEBIAN_TEST_GL_TAG
        KERNEL_TAG
        PKG_REPO_REV
      )
      for var in "${image_tags[@]}"
      do
        if [ "$(echo -n "${!var}" | wc -c)" -gt 20 ]
        then
          echo "$var is too long; please make sure it is at most 20 chars."
          exit 1
        fi
      done
  artifacts:
    when: on_failure
    reports:
      junit: check-*.xml


mr-label-maker-test:
  extends:
    - .fdo.ci-fairy
  stage: sanity
  tags:
    - $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
  rules:
    - !reference [.mr-label-maker-rules, rules]
  variables:
    GIT_STRATEGY: fetch
  timeout: 10m
  script:
    - set -eu
    - python3 -m venv .venv
    - source .venv/bin/activate
    - pip install git+https://gitlab.freedesktop.org/freedesktop/mr-label-maker
    - mr-label-maker --dry-run --mr $CI_MERGE_REQUEST_IID


# Jobs that need to pass before spending hardware resources on further testing
.required-for-hardware-jobs:
  needs:
    - job: clang-format
      optional: true
    - job: rustfmt
      optional: true
    - job: toml-lint
      optional: true

deploy-docs:
   rules:
    - when: never

linkcheck-docs:
   rules:
    - when: never

test-docs:
   rules:
    - when: never
