summaryrefslogtreecommitdiff
path: root/.gitlab-ci/lava-gitlab-ci.yml
blob: 4a577d85ebe3f81b7010d94b345070a7a96794b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
.lava-test:
  extends:
    - .ci-run-policy
  # Cancel job if a newer commit is pushed to the same branch
  interruptible: true
  variables:
    GIT_STRATEGY: none # testing doesn't build anything from source
    ENV_VARS: "DEQP_PARALLEL=6"
    FIXED_ENV_VARS: "CI_PIPELINE_ID=${CI_PIPELINE_ID} CI_JOB_ID=${CI_JOB_ID} CI_PAGES_DOMAIN=${CI_PAGES_DOMAIN} CI_PROJECT_NAME=${CI_PROJECT_NAME} CI_PROJECT_DIR=${CI_PROJECT_DIR} CI_PROJECT_PATH=${CI_PROJECT_PATH} CI_PROJECT_ROOT_NAMESPACE=${CI_PROJECT_ROOT_NAMESPACE} CI_JOB_JWT=${CI_JOB_JWT} CI_SERVER_URL=${CI_SERVER_URL} DRIVER_NAME=${DRIVER_NAME} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} PIGLIT_NO_WINDOW=1 PIGLIT_REPLAY_UPLOAD_TO_MINIO=1 MINIO_HOST=${MINIO_HOST} LAVA_TEST_SCRIPT=${LAVA_TEST_SCRIPT} TEST_SUITE=${TEST_SUITE} VK_DRIVER=${VK_DRIVER} FLAKES_CHANNEL=${FLAKES_CHANNEL}"
    DEQP_VERSION: gles2
    ARTIFACTS_PREFIX: "https://${MINIO_HOST}/mesa-lava"
    MESA_URL: "http://caching-proxy/cache/?uri=https://${MINIO_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/mesa-${ARCH}.tar.gz"
  script:
    # Try to use the kernel and rootfs built in mainline first, to save cycles
    - >
      if wget -q --method=HEAD "${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${DISTRIBUTION_TAG}/${ARCH}/done"; then
        ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${DISTRIBUTION_TAG}/${ARCH}"
      else
        ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${ARCH}"
      fi
    - rm -rf results
    - mkdir -p results
    - >
      artifacts/lava_job_submitter.py \
        --template artifacts/lava.yml.jinja2 \
        --pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
        --base-artifacts-url ${ARTIFACTS_URL} \
        --mesa-url ${MESA_URL} \
        --device-type ${DEVICE_TYPE} \
        --dtb ${DTB} \
        --env-vars "${ENV_VARS} ${FIXED_ENV_VARS}" \
        --deqp-version ${DEQP_VERSION} \
        --kernel-image-name ${KERNEL_IMAGE_NAME} \
        --kernel-image-type "${KERNEL_IMAGE_TYPE}" \
        --gpu-version ${GPU_VERSION} \
        --boot-method ${BOOT_METHOD} \
        --lava-tags "${LAVA_TAGS}" \
        --ci-node-index "${CI_NODE_INDEX}" \
        --ci-node-total "${CI_NODE_TOTAL}" | tee results/lava.log
    - cp lava.yml results/.
  artifacts:
    name: "mesa_${CI_JOB_NAME}"
    when: always
    paths:
      - results/
    exclude:
      - results/*.shader_cache
  after_script:
    - wget -q "https://minio-packet.freedesktop.org/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/${CI_JOB_ID}/results.tar.gz" -O- | tar -xz

.lava-test:armhf:
  variables:
    ARCH: armhf
    KERNEL_IMAGE_NAME: zImage
    KERNEL_IMAGE_TYPE: "type:\ zimage"
    BOOT_METHOD: u-boot
    TEST_SUITE: "deqp"
    LAVA_TEST_SCRIPT: "/install/deqp-runner.sh"
  extends:
    - .use-arm_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_armhf
    - .use-x86_build
    - .lava-test
    - .use-kernel+rootfs-arm
  needs:
    - kernel+rootfs_armhf
    - x86_build
    - meson-armhf

.lava-test:arm64:
  variables:
    ARCH: arm64
    KERNEL_IMAGE_NAME: Image
    KERNEL_IMAGE_TYPE: "type:\ image"
    BOOT_METHOD: u-boot
    TEST_SUITE: "deqp"
    LAVA_TEST_SCRIPT: "/install/deqp-runner.sh"
  extends:
    - .use-arm_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm64
    - .use-x86_build
    - .lava-test
    - .use-kernel+rootfs-arm
  dependencies:
    - meson-arm64
  needs:
    - kernel+rootfs_arm64
    - x86_build
    - meson-arm64

.lava-test:amd64:
  variables:
    ARCH: amd64
    KERNEL_IMAGE_NAME: bzImage
    KERNEL_IMAGE_TYPE: "type:\ zimage"
    BOOT_METHOD: u-boot
    TEST_SUITE: "deqp"
    LAVA_TEST_SCRIPT: "/install/deqp-runner.sh"
  extends:
    - .use-x86_build-base # for same $MESA_ARTIFACTS_BASE_TAG as in kernel+rootfs_amd64
    - .use-x86_build
    - .lava-test
    - .use-kernel+rootfs-amd64
  needs:
    - kernel+rootfs_amd64
    - meson-testing

.lava-traces-base:
  variables:
    LAVA_TEST_SCRIPT: "/install/piglit/run.sh"
  artifacts:
    reports:
      junit: results/junit.xml

.lava-piglit:
  variables:
    TEST_SUITE: "piglit"
    LAVA_TEST_SCRIPT: "/install/piglit/piglit-runner.sh"

.lava-piglit-traces:amd64:
  extends:
    - .lava-test:amd64
    - .lava-piglit
    - .lava-traces-base

.lava-piglit-traces:armhf:
  extends:
    - .lava-test:armhf
    - .lava-piglit
    - .lava-traces-base

.lava-piglit-traces:arm64:
  extends:
    - .lava-test:arm64
    - .lava-piglit
    - .lava-traces-base

.lava-piglit:amd64:
  extends:
    - .lava-test:amd64
    - .lava-piglit