X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=.gitlab-ci%2Flava-gitlab-ci.yml;h=da771c5e406f35b40ee9b3da2a2283bf054c46df;hb=a4b048c046cc4861d9ce7da94eeaeca341b7e2f5;hp=e505091d8c504862892603b3a552fe113fbe9646;hpb=3bcd54f3fc2051dfb49d8c6afeb1f18f7cd9c0b7;p=mesa.git diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index e505091d8c5..da771c5e406 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -1,158 +1,33 @@ -variables: - LAVA_DEBIAN_VERSION: testing-slim - LAVA_IMAGE_TAG: "lava-2019-10-10-1" - -include: - - project: 'wayland/ci-templates' - ref: 1f7f57c64ff4ebbf7292e3b7a13600518b8cb24c - file: '/templates/debian.yml' - -# When to automatically run the CI -.ci-run-policy: - only: - - branches@mesa/mesa - - merge_requests - - /^ci([-/].*)?$/ - retry: - max: 2 - when: - - runner_system_failure - -# Build Docker image with deqp, the rootfs and the build deps for Mesa -.lava-container: - extends: - - .debian@container-ifnot-exists - - .container - variables: - DEBIAN_TAG: '${DEBIAN_ARCH}-${LAVA_IMAGE_TAG}' - DEBIAN_EXEC: 'DEBIAN_ARCH=${DEBIAN_ARCH} - GCC_ARCH=${GCC_ARCH} - KERNEL_ARCH=${KERNEL_ARCH} - VOLT_ARCH=${VOLT_ARCH} - DEFCONFIG=${DEFCONFIG} - DEVICE_TREES="${DEVICE_TREES}" - KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME} - bash .gitlab-ci/lava-debian-install.sh' - DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION} - -lava-container:armhf: - extends: .lava-container - variables: - DEBIAN_ARCH: "armhf" - GCC_ARCH: "arm-linux-gnueabihf" - KERNEL_ARCH: "arm" - VOLT_ARCH: "armhf" - DEFCONFIG: "arch/arm/configs/multi_v7_defconfig" - DEVICE_TREES: "arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb" - KERNEL_IMAGE_NAME: "zImage" - -lava-container:arm64: - extends: .lava-container - variables: - DEBIAN_ARCH: "arm64" - GCC_ARCH: "aarch64-linux-gnu" - KERNEL_ARCH: "arm64" - VOLT_ARCH: "aarch64" - DEFCONFIG: "arch/arm64/configs/defconfig" - DEVICE_TREES: "arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb" - KERNEL_IMAGE_NAME: "Image" - -.lava-build: - image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:$DEBIAN_ARCH-$LAVA_IMAGE_TAG - extends: - - .build - # Use ccache transparently, and print stats before/after - before_script: - - mkdir -p results mesa-build - - mkdir -p ccache - - export PATH="/usr/lib/ccache:$PATH" - - export CCACHE_BASEDIR="$PWD" - - export CCACHE_DIR="$PWD/ccache" - - ccache --max-size=1500M - - ccache --zero-stats || true - - ccache --show-stats || true - script: - # Build Mesa - - /usr/share/meson/debcrossgen --arch ${DEBIAN_ARCH} -o /tmp/cross_file.txt - - meson . mesa-build - --cross-file /tmp/cross_file.txt - --libdir /artifacts/rootfs/mesa/lib/ - --buildtype debugoptimized - -D gallium-drivers=kmsro,panfrost,lima - -D dri-drivers= - -D prefix=/artifacts/rootfs/mesa - -D glx=disabled - -D gbm=false - -D egl=true - -D platforms=surfaceless - -D osmesa=none - -D dri3=false - -D gallium-vdpau=false - -D gallium-xvmc=false - -D gallium-omx=disabled - -D gallium-va=false - -D gallium-xa=false - -D gallium-nine=false - -D llvm=false - - ninja -C mesa-build -j4 - - ninja -C mesa-build install - - find /artifacts/rootfs/mesa/lib -name \*.so -exec ${GCC_ARCH}-strip {} \; - - - du -sh /artifacts/rootfs/mesa/* - - rm -rf /artifacts/rootfs/mesa/include - - # Pack rootfs - - cp .gitlab-ci/lava-deqp-runner.sh /artifacts/rootfs/deqp/. - - cp .gitlab-ci/deqp-*-fails.txt /artifacts/rootfs/deqp/. - - cp .gitlab-ci/deqp-*-skips.txt /artifacts/rootfs/deqp/. - - du -sh /artifacts/rootfs/deqp/* - - find /artifacts/rootfs/ -type f -printf "%s\t%p\n" | sort -n - - pushd /artifacts/rootfs/ ; find -H | cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/lava-rootfs-${DEBIAN_ARCH}.cpio.gz; popd - - # Copy kernel and DT - - cp /artifacts/${KERNEL_IMAGE_NAME} /artifacts/*.dtb $CI_PROJECT_DIR/results/. - - # Generate LAVA job - - cd $CI_PROJECT_DIR - - .gitlab-ci/generate_lava.py - --template .gitlab-ci/lava-deqp.yml.jinja2 - --arch ${DEBIAN_ARCH} - --base-artifacts-url $CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/results - --device-types ${DEVICE_TYPES} - --kernel-image-name ${KERNEL_IMAGE_NAME} - after_script: - - export CCACHE_DIR="$PWD/ccache" - - ccache --show-stats - artifacts: - when: always - paths: - - results/ - -lava-build:armhf: - extends: .lava-build - needs: ["lava-container:armhf"] - variables: - DEBIAN_ARCH: "armhf" - GCC_ARCH: "arm-linux-gnueabihf" - DEVICE_TYPES: "rk3288-veyron-jaq sun8i-h3-libretech-all-h3-cc" - KERNEL_IMAGE_NAME: "zImage" - -lava-build:arm64: - extends: .lava-build - needs: ["lava-container:arm64"] - variables: - DEBIAN_ARCH: "arm64" - GCC_ARCH: "aarch64-linux-gnu" - DEVICE_TYPES: "rk3399-gru-kevin meson-gxl-s905x-libretech-cc" - KERNEL_IMAGE_NAME: "Image" - .lava-test: extends: - - .test + - .ci-run-policy + stage: test + variables: + GIT_STRATEGY: none # testing doesn't build anything from source + ENV_VARS: "MESA_GLES_VERSION_OVERRIDE=3.0 DEQP_PARALLEL=6" script: - - lava_job_id=`lavacli jobs submit $CI_PROJECT_DIR/results/lava-deqp-$DEVICE_TYPE.yml` + - BUILD_JOB_ID=`cat artifacts/build_job_id.txt` + - > + artifacts/generate_lava.py \ + --template artifacts/lava-deqp.yml.jinja2 \ + --pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \ + --base-artifacts-url $CI_PROJECT_URL/-/jobs/$BUILD_JOB_ID/artifacts/raw/artifacts \ + --device-type ${DEVICE_TYPE} \ + --env-vars "${ENV_VARS}" \ + --arch ${ARCH} \ + --deqp-version gles2 \ + --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}" + - lava_job_id=`lavacli jobs submit lava-deqp.yml` - echo $lava_job_id - - lavacli jobs logs $lava_job_id | grep -a -v "{'case':" | tee results/lava-deqp-$lava_job_id.log + - rm -rf artifacts/* + - cp lava-deqp.yml artifacts/. + - lavacli jobs logs $lava_job_id | grep -a -v "{'case':" | tee artifacts/lava-deqp-$lava_job_id.log - lavacli jobs show $lava_job_id - result=`lavacli results $lava_job_id 0_deqp deqp | head -1` - echo $result @@ -160,30 +35,51 @@ lava-build:arm64: artifacts: when: always paths: - - results/ + - artifacts/ .lava-test:armhf: - image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:armhf-$LAVA_IMAGE_TAG - extends: .lava-test - needs: - - lava-container:armhf - - lava-build:armhf + variables: + ARCH: armhf + KERNEL_IMAGE_NAME: zImage + KERNEL_IMAGE_TYPE: "type:\ zimage" + BOOT_METHOD: u-boot + extends: + - .lava-test + - .use-arm_build dependencies: - - lava-build:armhf + - meson-armhf + needs: + - meson-armhf .lava-test:arm64: - image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:arm64-$LAVA_IMAGE_TAG - extends: .lava-test - needs: - - lava-container:arm64 - - lava-build:arm64 + variables: + ARCH: arm64 + KERNEL_IMAGE_NAME: Image + KERNEL_IMAGE_TYPE: "type:\ image" + BOOT_METHOD: u-boot + extends: + - .lava-test + - .use-arm_build dependencies: - - lava-build:arm64 + - meson-arm64 + needs: + - meson-arm64 + +panfrost-t720-test:arm64: + extends: .lava-test:arm64 + variables: + DEVICE_TYPE: sun50i-h6-pine-h64 + GPU_VERSION: panfrost-t720 + tags: + - lava-sun50i-h6-pine-h64 panfrost-t760-test:armhf: extends: .lava-test:armhf variables: DEVICE_TYPE: rk3288-veyron-jaq + GPU_VERSION: panfrost-t760 + BOOT_METHOD: depthcharge + KERNEL_IMAGE_TYPE: "" tags: - lava-rk3288-veyron-jaq @@ -191,19 +87,36 @@ panfrost-t860-test:arm64: extends: .lava-test:arm64 variables: DEVICE_TYPE: rk3399-gru-kevin + GPU_VERSION: panfrost-t860 + BOOT_METHOD: depthcharge + KERNEL_IMAGE_TYPE: "" tags: - lava-rk3399-gru-kevin -lima-test:armhf: +.panfrost-t820-test:arm64: + extends: .lava-test:arm64 + variables: + DEVICE_TYPE: meson-gxm-khadas-vim2 + GPU_VERSION: panfrost-t820 + LAVA_TAGS: panfrost + tags: + - lava-meson-gxm-khadas-vim2 + +.lima-mali400-test:armhf: + parallel: 2 extends: .lava-test:armhf variables: DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc + GPU_VERSION: lima + ENV_VARS: "DEQP_PARALLEL=3" tags: - lava-sun8i-h3-libretech-all-h3-cc -lima-test:arm64: +lima-mali450-test:arm64: extends: .lava-test:arm64 variables: DEVICE_TYPE: meson-gxl-s905x-libretech-cc + GPU_VERSION: lima + ENV_VARS: "DEQP_PARALLEL=6" tags: - lava-meson-gxl-s905x-libretech-cc