gitlab-ci: Don't rebuild kernels and rootfs if they have been already built in mainline
[mesa.git] / .gitlab-ci / lava-gitlab-ci.yml
1 variables:
2 DISTRIBUTION_TAG: "2020-07-06"
3
4 .kernel+rootfs:
5 stage: container-2
6 extends:
7 - .ci-run-policy
8 variables:
9 GIT_STRATEGY: fetch
10 script:
11 - DEBIAN_ARCH=${DEBIAN_ARCH} .gitlab-ci/container/lava_arm.sh
12
13 kernel+rootfs_arm64:
14 extends:
15 - .use-arm_build
16 - .kernel+rootfs
17 tags:
18 - aarch64
19 variables:
20 DEBIAN_ARCH: "arm64"
21
22 kernel+rootfs_armhf:
23 extends:
24 - kernel+rootfs_arm64
25 variables:
26 DEBIAN_ARCH: "armhf"
27
28 .lava-test:
29 extends:
30 - .ci-run-policy
31 variables:
32 GIT_STRATEGY: none # testing doesn't build anything from source
33 ENV_VARS: "DEQP_PARALLEL=6"
34 DEQP_VERSION: gles2
35 ARTIFACTS_PREFIX: "https://minio-packet.freedesktop.org/mesa-lava/"
36 MESA_URL: "https://minio-packet.freedesktop.org/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/mesa-${ARCH}.tar.gz"
37 script:
38 # Try to use the kernel and rootfs built in mainline first, to save cycles
39 - >
40 if wget -q --method=HEAD "${ARTIFACTS_PREFIX}/mesa/mesa/${DISTRIBUTION_TAG}/${ARCH}/done"; then
41 ARTIFACTS_URL="${ARTIFACTS_PREFIX}/mesa/mesa/${DISTRIBUTION_TAG}/${ARCH}"
42 else
43 ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${ARCH}"
44 fi
45 - >
46 artifacts/generate_lava.py \
47 --template artifacts/lava-deqp.yml.jinja2 \
48 --pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
49 --base-artifacts-url ${ARTIFACTS_URL} \
50 --mesa-url ${MESA_URL} \
51 --device-type ${DEVICE_TYPE} \
52 --env-vars "${ENV_VARS}" \
53 --deqp-version ${DEQP_VERSION} \
54 --kernel-image-name ${KERNEL_IMAGE_NAME} \
55 --kernel-image-type "${KERNEL_IMAGE_TYPE}" \
56 --gpu-version ${GPU_VERSION} \
57 --boot-method ${BOOT_METHOD} \
58 --lava-tags "${LAVA_TAGS}" \
59 --ci-node-index "${CI_NODE_INDEX}" \
60 --ci-node-total "${CI_NODE_TOTAL}"
61 - lava_job_id=`lavacli jobs submit lava-deqp.yml` || lavacli jobs submit lava-deqp.yml
62 - echo $lava_job_id
63 - rm -rf artifacts/*
64 - cp lava-deqp.yml artifacts/.
65 - lavacli jobs logs $lava_job_id | tee artifacts/lava-deqp-$lava_job_id.log
66 - lavacli jobs show $lava_job_id
67 - result=`lavacli results $lava_job_id 0_deqp deqp | head -1`
68 - echo $result
69 - '[[ "$result" == "pass" ]]'
70 artifacts:
71 name: "mesa_${CI_JOB_NAME}"
72 when: always
73 paths:
74 - artifacts/
75
76 .lava-test:armhf:
77 variables:
78 ARCH: armhf
79 KERNEL_IMAGE_NAME: zImage
80 KERNEL_IMAGE_TYPE: "type:\ zimage"
81 BOOT_METHOD: u-boot
82 extends:
83 - .lava-test
84 - .use-arm_build
85 dependencies:
86 - meson-armhf
87 needs:
88 - kernel+rootfs_armhf
89 - meson-armhf
90
91 .lava-test:arm64:
92 variables:
93 ARCH: arm64
94 KERNEL_IMAGE_NAME: Image
95 KERNEL_IMAGE_TYPE: "type:\ image"
96 BOOT_METHOD: u-boot
97 extends:
98 - .lava-test
99 - .use-arm_build
100 dependencies:
101 - meson-arm64
102 needs:
103 - kernel+rootfs_arm64
104 - meson-arm64
105
106 panfrost-t720-gles2:arm64:
107 extends:
108 - .lava-test:arm64
109 - .panfrost-rules
110 variables:
111 DEVICE_TYPE: sun50i-h6-pine-h64
112 GPU_VERSION: panfrost-t720
113 ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T720"
114 tags:
115 - mesa-ci-aarch64-lava-collabora
116
117 panfrost-t760-gles2:armhf:
118 extends:
119 - .lava-test:armhf
120 - .panfrost-rules
121 variables:
122 DEVICE_TYPE: rk3288-veyron-jaq
123 GPU_VERSION: panfrost-t760
124 BOOT_METHOD: depthcharge
125 KERNEL_IMAGE_TYPE: ""
126 ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T760"
127 tags:
128 - mesa-ci-aarch64-lava-collabora
129
130 panfrost-t860-gles2:arm64:
131 extends:
132 - .lava-test:arm64
133 - .panfrost-rules
134 variables:
135 DEVICE_TYPE: rk3399-gru-kevin
136 GPU_VERSION: panfrost-t860
137 BOOT_METHOD: depthcharge
138 KERNEL_IMAGE_TYPE: ""
139 ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
140 tags:
141 - mesa-ci-aarch64-lava-collabora
142
143 panfrost-t860-gles3:arm64:
144 extends:
145 - .lava-test:arm64
146 - .panfrost-rules
147 variables:
148 DEVICE_TYPE: rk3399-gru-kevin
149 GPU_VERSION: panfrost-t860
150 BOOT_METHOD: depthcharge
151 KERNEL_IMAGE_TYPE: ""
152 DEQP_VERSION: gles3
153 ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
154 CI_NODE_INDEX: 1
155 CI_NODE_TOTAL: 5
156 tags:
157 - mesa-ci-aarch64-lava-collabora
158
159 .panfrost-t820-gles2:arm64:
160 extends:
161 - .lava-test:arm64
162 - .panfrost-rules
163 variables:
164 DEVICE_TYPE: meson-gxm-khadas-vim2
165 GPU_VERSION: panfrost-t820
166 LAVA_TAGS: panfrost
167 ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T820"
168 tags:
169 - mesa-ci-aarch64-lava-baylibre
170
171 .lima-mali400-test:armhf:
172 parallel: 2
173 extends:
174 - .lava-test:armhf
175 - .lima-rules
176 variables:
177 DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
178 GPU_VERSION: lima
179 ENV_VARS: "DEQP_PARALLEL=3 DEQP_EXPECTED_RENDERER=Mali400"
180 tags:
181 - mesa-ci-aarch64-lava-baylibre
182
183 .lima-mali450-test:arm64:
184 extends:
185 - .lava-test:arm64
186 - .lima-rules
187 variables:
188 DEVICE_TYPE: meson-gxl-s905x-libretech-cc
189 GPU_VERSION: lima
190 ENV_VARS: "DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=Mali450"
191 tags:
192 - mesa-ci-aarch64-lava-baylibre