variables:
  DRM_CI_PROJECT_PATH: &drm-ci-project-path mesa/mesa
  DRM_CI_COMMIT_SHA: &drm-ci-commit-sha 7d3062470f3ccc6cb40540e772e902c7e2248024

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

  IGT_VERSION: 33adea9ebafd059ac88a5ccfec60536394f36c7c

  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 d5aa3941aa03c2f716595116354fb81eb8012acb
  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
  LAVA_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: 16bc29078de5e0a067ff84a1a199a3760d3b3811
    file:
      - '/templates/ci-fairy.yml'
  - project: 'freedesktop/ci-templates'
    ref: *ci-templates-commit
    file:
      - '/templates/alpine.yml'
      - '/templates/debian.yml'
      - '/templates/fedora.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'
  - 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
  - 'https://gitlab.freedesktop.org/gfx-ci/lab-status/-/raw/main/lab-status.yml'


stages:
  - sanity
  - container
  - git-archive
  - build-for-tests
  - build-only
  - 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_PROJECT_NAMESPACE != "mesa" && $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_PROJECT_NAMESPACE == "mesa" && $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 any files affecting the pipeline
    # were changed
    - if: *is-merge-attempt
      changes: &all_paths
      - drivers/gpu/drm/ci/**/*
      when: on_success
    # Same as above, but for pre-merge pipelines
    - if: *is-pre-merge
      changes:
        *all_paths
      when: manual
    # Skip everything for pre-merge and merge pipelines which don't change
    # anything in the build
    - if: *is-merge-attempt
      when: never
    - if: *is-pre-merge
      when: never
    # Build everything after someone bypassed the CI
    - if: *is-direct-push
      when: on_success
    # 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


.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


# Git archive
make git archive:
  extends:
    - .fdo.ci-fairy
  stage: git-archive
  rules:
    - !reference [.scheduled_pipeline-rules, rules]
  # ensure we are running on packet
  tags:
    - packet.net
  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
  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_ROOTFS_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
  tags:
    - placeholder-job


mr-label-maker-test:
  extends:
    - .fdo.ci-fairy
  stage: sanity
  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
