.kernel+rootfs: extends: - .ci-run-policy stage: container-2 variables: GIT_STRATEGY: fetch DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}" script: - .gitlab-ci/container/lava_build.sh .kernel+rootfs-lava: extends: - .kernel+rootfs variables: KERNEL_URL: "https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.10-rc2-for-mesa-ci/linux-v5.10-rc2-for-mesa-ci.tar.gz" INSTALL_KERNEL_MODULES: 1 MESA_ROOTFS_TAG: &lava-rootfs "2021-04-14-librenderdoc" MINIO_SUFFIX: "lava" PIGLIT_BUILD_TARGETS: "piglit_replayer" kernel+rootfs_amd64: extends: - .use-x86_build-base - .kernel+rootfs-lava image: "$FDO_BASE_IMAGE" variables: DEBIAN_ARCH: "amd64" DISTRIBUTION_TAG: &distribution-tag-amd64 "${MESA_ROOTFS_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" kernel+rootfs_arm64: extends: - .use-arm_build - .kernel+rootfs-lava tags: - aarch64 variables: DEBIAN_ARCH: "arm64" kernel+rootfs_armhf: extends: - kernel+rootfs_arm64 variables: DEBIAN_ARCH: "armhf" .lava-test: extends: - .ci-run-policy # Cancel job if a newer commit is pushed to the same branch interruptible: true variables: DISTRIBUTION_TAG: *distribution-tag-arm 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_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}" DEQP_VERSION: gles2 ARTIFACTS_PREFIX: "https://${MINIO_HOST}/mesa-lava/" MESA_ROOTFS_TAG: *lava-rootfs MESA_URL: "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}/lava/${DISTRIBUTION_TAG}/${ARCH}/done"; then ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/lava/${DISTRIBUTION_TAG}/${ARCH}" else ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/lava/${DISTRIBUTION_TAG}/${ARCH}" fi - > artifacts/generate_lava.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}" - lava_job_id=`lavacli jobs submit lava.yml` || lavacli jobs submit lava.yml - echo $lava_job_id - rm -rf artifacts/* - cp lava.yml artifacts/. - lavacli jobs logs $lava_job_id | tee artifacts/lava-$lava_job_id.log - lavacli jobs show $lava_job_id - result=`lavacli results $lava_job_id 0_mesa mesa | head -1` - echo $result - '[[ "$result" == "pass" ]]' artifacts: name: "mesa_${CI_JOB_NAME}" when: always paths: - artifacts/ .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: - .lava-test - .use-arm_build needs: - kernel+rootfs_armhf - 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: - .lava-test - .use-arm_build dependencies: - meson-arm64 needs: - kernel+rootfs_arm64 - meson-arm64 .lava-test:amd64: variables: ARCH: amd64 DISTRIBUTION_TAG: *distribution-tag-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_BASE_TAG as in kernel+rootfs_amd64 - .use-arm_build # ARM because it must match the architecture of the runner - .lava-test needs: - kernel+rootfs_amd64 - arm_build # ARM because it must match the architecture of the runner - meson-testing .lava-traces-base: after_script: - mkdir -p artifacts - wget -O "artifacts/junit.xml" "https://minio-packet.freedesktop.org/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/${CI_JOB_ID}/traces/junit.xml" artifacts: reports: junit: artifacts/junit.xml .lava-piglit: variables: TEST_SUITE: "piglit" LAVA_TEST_SCRIPT: "/install/piglit/run.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