Browse Source

gitlab-ci: Move LAVA-related files into top-level ci dir

In preparation for testing drivers other than Panfrost in LAVA labs.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
tags/19.3-branchpoint
Tomeu Vizoso 7 years ago
parent
commit
555c0de8c6

+ 1
- 1
.gitlab-ci.yml View File

file: '/templates/debian.yml' file: '/templates/debian.yml'


include: include:
- local: '/src/gallium/drivers/panfrost/ci/gitlab-ci.yml'
- local: '/.gitlab-ci/lava-gitlab-ci.yml'


stages: stages:
- containers - containers

src/gallium/drivers/panfrost/ci/arm.config → .gitlab-ci/arm.config View File


src/gallium/drivers/panfrost/ci/arm64.config → .gitlab-ci/arm64.config View File


src/gallium/drivers/panfrost/ci/create-rootfs.sh → .gitlab-ci/create-rootfs.sh View File


+ 1061
- 0
.gitlab-ci/deqp-panfrost-t760-fails.txt
File diff suppressed because it is too large
View File


src/gallium/drivers/panfrost/ci/expected-failures.txt → .gitlab-ci/deqp-panfrost-t860-fails.txt View File


src/gallium/drivers/panfrost/ci/generate_lava.py → .gitlab-ci/generate_lava.py View File


src/gallium/drivers/panfrost/ci/debian-install.sh → .gitlab-ci/lava-debian-install.sh View File

set -e set -e
set -o xtrace set -o xtrace


PANFROST_CI_DIR=/tmp/clone/src/gallium/drivers/panfrost/ci

############### Install packages for building ############### Install packages for building
dpkg --add-architecture ${DEBIAN_ARCH} dpkg --add-architecture ${DEBIAN_ARCH}
echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list
cmake \ cmake \
bc \ bc \
libssl-dev \ libssl-dev \
lavacli \
lqa \
csvkit \ csvkit \
curl \ curl \
unzip \ unzip \
libegl1-mesa-dev:${DEBIAN_ARCH} \ libegl1-mesa-dev:${DEBIAN_ARCH} \
libpng-dev:${DEBIAN_ARCH} libpng-dev:${DEBIAN_ARCH}



############### Install lavacli (remove after it's back into Debian testing)
mkdir -p lavacli
wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli
pushd lavacli
python3 ./setup.py install
popd


############### Cross-build dEQP ############### Cross-build dEQP
mkdir -p /artifacts/rootfs/deqp mkdir -p /artifacts/rootfs/deqp


mkdir -p /kernel mkdir -p /kernel
wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel
cd /kernel cd /kernel
./scripts/kconfig/merge_config.sh ${DEFCONFIG} ${PANFROST_CI_DIR}/${KERNEL_ARCH}.config
./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config
make -j12 ${KERNEL_IMAGE_NAME} dtbs make -j12 ${KERNEL_IMAGE_NAME} dtbs
cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/. cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/.
cp ${DEVICE_TREES} /artifacts/. cp ${DEVICE_TREES} /artifacts/.




############### Create rootfs ############### Create rootfs
cp ${PANFROST_CI_DIR}/create-rootfs.sh /artifacts/rootfs/.
cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/.
mkdir -p /artifacts/rootfs/bin mkdir -p /artifacts/rootfs/bin
cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin
cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin

src/gallium/drivers/panfrost/ci/deqp-runner.sh → .gitlab-ci/lava-deqp-runner.sh View File

#!/bin/sh #!/bin/sh


GPU_VERSION="$1"

DEQP_OPTIONS="--deqp-surface-width=256 --deqp-surface-height=256" DEQP_OPTIONS="--deqp-surface-width=256 --deqp-surface-height=256"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-log-images=disable" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-log-images=disable"
--test-names-file=/tmp/case-list.txt \ --test-names-file=/tmp/case-list.txt \
--results-file=/tmp/results.txt \ --results-file=/tmp/results.txt \
--no-passed-results \ --no-passed-results \
--regression-file=/deqp/expected-failures.txt \
--regression-file=/deqp/deqp-panfrost-$GPU_VERSION-fails.txt \
--no-rerun-tests \ --no-rerun-tests \
--print-regression \ --print-regression \
--no-print-fail \ --no-print-fail \

src/gallium/drivers/panfrost/ci/lava-deqp.yml.jinja2 → .gitlab-ci/lava-deqp.yml.jinja2 View File

job_name: panfrost-deqp
job_name: panfrost-deqp-{{ gpu_version }}
device_type: {{ device_type }} device_type: {{ device_type }}
timeouts: timeouts:
job: job:
- repository: - repository:
metadata: metadata:
format: Lava-Test Test Definition 1.0 format: Lava-Test Test Definition 1.0
name: igt
description: "IGT test plan"
name: deqp
description: "Mesa dEQP test plan"
os: os:
- oe - oe
scope: scope:
- mkdir -p /dev/pts - mkdir -p /dev/pts
- mount -t devpts devpts /dev/pts - mount -t devpts devpts /dev/pts
- echo 3 > /proc/sys/kernel/printk - echo 3 > /proc/sys/kernel/printk
- sh /deqp/deqp-runner.sh
- sh /deqp/lava-deqp-runner.sh {{ gpu_version }}
- cat /proc/loadavg - cat /proc/loadavg
parse: parse:
pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))' pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'

src/gallium/drivers/panfrost/ci/gitlab-ci.yml → .gitlab-ci/lava-gitlab-ci.yml View File

variables: variables:
LAVA_DEBIAN_VERSION: testing-slim LAVA_DEBIAN_VERSION: testing-slim
LAVA_IMAGE_TAG: "lava-2019-09-18-1"
LAVA_IMAGE_TAG: "lava-2019-09-20-1"


include: include:
- project: 'wayland/ci-templates' - project: 'wayland/ci-templates'
DEFCONFIG=${DEFCONFIG} DEFCONFIG=${DEFCONFIG}
DEVICE_TREES=${DEVICE_TREES} DEVICE_TREES=${DEVICE_TREES}
KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME} KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME}
bash src/gallium/drivers/panfrost/ci/debian-install.sh'
bash .gitlab-ci/lava-debian-install.sh'
DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION} DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION}


lava-container:armhf: lava-container:armhf:
.lava-build: .lava-build:
stage: build stage: build
image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:$DEBIAN_ARCH-$LAVA_IMAGE_TAG image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:$DEBIAN_ARCH-$LAVA_IMAGE_TAG
extends:
- .ci-run-policy
cache: cache:
key: ${CI_JOB_NAME}
paths: paths:
- ccache - ccache
variables:
CCACHE_COMPILERCHECK: "content"
# Use ccache transparently, and print stats before/after
before_script: before_script:
- mkdir -p results mesa-build - mkdir -p results mesa-build
- mkdir -p ccache - mkdir -p ccache
script:
- export CCACHE_BASEDIR=$CI_PROJECT_DIR
- export CCACHE_DIR=$CI_PROJECT_DIR/ccache
- export PATH="/usr/lib/ccache:$PATH" - export PATH="/usr/lib/ccache:$PATH"
- ccache -s

- export CCACHE_BASEDIR="$PWD"
- export CCACHE_DIR="$PWD/ccache"
- ccache --max-size=1500M
- ccache --zero-stats || true
- ccache --show-stats || true
script:
# Build Mesa # Build Mesa
- /usr/share/meson/debcrossgen --arch ${DEBIAN_ARCH} -o /tmp/cross_file.txt - /usr/share/meson/debcrossgen --arch ${DEBIAN_ARCH} -o /tmp/cross_file.txt
- meson . mesa-build - meson . mesa-build
--cross-file /tmp/cross_file.txt --cross-file /tmp/cross_file.txt
--libdir /artifacts/rootfs/mesa/lib/ --libdir /artifacts/rootfs/mesa/lib/
--buildtype release
--buildtype debugoptimized
-D gallium-drivers=kmsro,panfrost -D gallium-drivers=kmsro,panfrost
-D dri-drivers= -D dri-drivers=
-D prefix=/artifacts/rootfs/mesa -D prefix=/artifacts/rootfs/mesa
-D gallium-xa=false -D gallium-xa=false
-D gallium-nine=false -D gallium-nine=false
-D llvm=false -D llvm=false
- ninja -C mesa-build -j4
- ninja -C mesa-build install - ninja -C mesa-build install
- find /artifacts/rootfs/mesa/lib -name \*.so -exec ${GCC_ARCH}-strip {} \;

- du -sh /artifacts/rootfs/mesa/* - du -sh /artifacts/rootfs/mesa/*
- rm -rf /artifacts/rootfs/mesa/include - rm -rf /artifacts/rootfs/mesa/include


# Pack rootfs # Pack rootfs
- cp src/gallium/drivers/panfrost/ci/deqp-runner.sh /artifacts/rootfs/deqp/.
- cp src/gallium/drivers/panfrost/ci/expected-failures.txt /artifacts/rootfs/deqp/.
- cp .gitlab-ci/lava-deqp-runner.sh /artifacts/rootfs/deqp/.
- cp .gitlab-ci/deqp-*-fails.txt /artifacts/rootfs/deqp/.
- du -sh /artifacts/rootfs/deqp/* - du -sh /artifacts/rootfs/deqp/*
- find /artifacts/rootfs/ -type f -printf "%s\t%p\n" | sort -n - find /artifacts/rootfs/ -type f -printf "%s\t%p\n" | sort -n
- cd /artifacts/rootfs/ ; find -H | cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/panfrost-rootfs-${DEBIAN_ARCH}.cpio.gz
- pushd /artifacts/rootfs/ ; find -H | cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/panfrost-rootfs-${DEBIAN_ARCH}.cpio.gz; popd


# Copy kernel and DT # Copy kernel and DT
- cp /artifacts/${KERNEL_IMAGE_NAME} /artifacts/*.dtb $CI_PROJECT_DIR/results/. - cp /artifacts/${KERNEL_IMAGE_NAME} /artifacts/*.dtb $CI_PROJECT_DIR/results/.


# Generate LAVA job # Generate LAVA job
- cd $CI_PROJECT_DIR - cd $CI_PROJECT_DIR
- src/gallium/drivers/panfrost/ci/generate_lava.py
--template src/gallium/drivers/panfrost/ci/lava-deqp.yml.jinja2
- .gitlab-ci/generate_lava.py
--template .gitlab-ci/lava-deqp.yml.jinja2
--arch ${DEBIAN_ARCH} --arch ${DEBIAN_ARCH}
--base-artifacts-url $CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/results --base-artifacts-url $CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/results
--device-type ${DEVICE_TYPE} --device-type ${DEVICE_TYPE}
--kernel-image-name ${KERNEL_IMAGE_NAME} --kernel-image-name ${KERNEL_IMAGE_NAME}
--gpu-version ${GPU_VERSION}
> results/lava-deqp.yml > results/lava-deqp.yml
- cp src/gallium/drivers/panfrost/ci/expected-failures.txt results/.
after_script:
- export CCACHE_DIR="$PWD/ccache"
- ccache --show-stats
artifacts: artifacts:
when: always when: always
paths: paths:
GCC_ARCH: "arm-linux-gnueabihf" GCC_ARCH: "arm-linux-gnueabihf"
DEVICE_TYPE: "rk3288-veyron-jaq" DEVICE_TYPE: "rk3288-veyron-jaq"
KERNEL_IMAGE_NAME: "zImage" KERNEL_IMAGE_NAME: "zImage"
GPU_VERSION: "t760"


lava-build:arm64: lava-build:arm64:
extends: .lava-build extends: .lava-build
GCC_ARCH: "aarch64-linux-gnu" GCC_ARCH: "aarch64-linux-gnu"
DEVICE_TYPE: "rk3399-gru-kevin" DEVICE_TYPE: "rk3399-gru-kevin"
KERNEL_IMAGE_NAME: "Image" KERNEL_IMAGE_NAME: "Image"
GPU_VERSION: "t860"


.lava-test: .lava-test:
stage: test stage: test
tags:
- idle-lava
image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:arm64-$LAVA_IMAGE_TAG # Any of the images will be fine image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:arm64-$LAVA_IMAGE_TAG # Any of the images will be fine
extends:
- .ci-run-policy
variables: variables:
GIT_STRATEGY: none # no need to pull the whole tree for submitting the job GIT_STRATEGY: none # no need to pull the whole tree for submitting the job
script: script:
- lavacli jobs show $lava_job_id - lavacli jobs show $lava_job_id
- result=`lavacli results $lava_job_id 0_deqp deqp | head -1` - result=`lavacli results $lava_job_id 0_deqp deqp | head -1`
- echo $result - echo $result

# Don't error out on RK3288
- '[[ "$result" == "pass" || -f results/rk3288-veyron-jaq.dtb ]]'
- '[[ "$result" == "pass" ]]'
artifacts: artifacts:
when: always when: always
paths: paths:
- results/ - results/


lava-test:armhf:
panfrost-t760-test:armhf:
extends: .lava-test extends: .lava-test
needs: ["lava-build:armhf"] needs: ["lava-build:armhf"]
dependencies: dependencies:
- lava-build:armhf - lava-build:armhf
tags:
- lava-rk3288-veyron-jaq


lava-test:arm64:
panfrost-t860-test:arm64:
extends: .lava-test extends: .lava-test
needs: ["lava-build:arm64"] needs: ["lava-build:arm64"]
dependencies: dependencies:
- lava-build:arm64 - lava-build:arm64
tags:
- lava-rk3399-gru-kevin



Loading…
Cancel
Save