194 lines
5.6 KiB
YAML
194 lines
5.6 KiB
YAML
.test:
|
|
# 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
|
|
# `before_script:` is only used by test jobs on generic fdo runners
|
|
# it's overwritten by hardware test jobs
|
|
before_script:
|
|
- !reference [.download_s3, before_script]
|
|
- section_start ldd_section "Checking ldd on driver build"
|
|
- LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
|
|
- section_end ldd_section
|
|
artifacts:
|
|
when: always
|
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}"
|
|
paths:
|
|
- results/
|
|
rules:
|
|
- !reference [.common-rules, rules]
|
|
- !reference [.never-post-merge-rules, rules]
|
|
|
|
.formatting-check:
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
interruptible: true
|
|
stage: code-validation
|
|
extends:
|
|
- .use-debian/arm64_build
|
|
variables:
|
|
GIT_STRATEGY: fetch
|
|
timeout: 10m
|
|
script:
|
|
- git diff --color=always --exit-code # Fails if there are diffs
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
|
|
.test-gl:
|
|
extends:
|
|
- .test
|
|
- .use-debian/x86_64_test-gl
|
|
needs:
|
|
- job: debian/x86_64_test-gl
|
|
optional: true
|
|
- job: debian-x86_64
|
|
- !reference [.required-for-hardware-jobs, needs]
|
|
variables:
|
|
DEBIAN_ARCH: amd64
|
|
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
|
|
|
|
.test-vk:
|
|
extends:
|
|
- .test
|
|
- .use-debian/x86_64_test-vk
|
|
needs:
|
|
- job: debian-x86_64
|
|
- job: debian/x86_64_test-vk
|
|
optional: true
|
|
- !reference [.required-for-hardware-jobs, needs]
|
|
variables:
|
|
DEBIAN_ARCH: amd64
|
|
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
|
|
|
|
.test-cl:
|
|
extends:
|
|
- .test
|
|
- .use-debian/x86_64_test-gl
|
|
needs:
|
|
- job: debian/x86_64_test-gl
|
|
optional: true
|
|
- !reference [.required-for-hardware-jobs, needs]
|
|
variables:
|
|
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
|
|
|
|
.test-android:
|
|
extends:
|
|
- .test
|
|
- .use-debian/x86_64_test-android
|
|
variables:
|
|
# This is for the guest artifacts from debian-android which will be
|
|
# downloaded explicitly by cuttlefish-runner.sh
|
|
S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug
|
|
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
|
|
# Set the default Vulkan driver to lavapipe for some preliminary checks
|
|
# that Cuttlefish always performs before starting the VM. This can be
|
|
# overwritten depending on the physical machine running the job.
|
|
VK_DRIVER: "lvp"
|
|
needs:
|
|
- job: debian-x86_64
|
|
artifacts: true # On the host we want the Linux build
|
|
- job: debian-android
|
|
artifacts: false # The Android build will be downloaded later
|
|
- job: debian/x86_64_test-android
|
|
artifacts: false
|
|
optional: true
|
|
- !reference [.required-for-hardware-jobs, needs]
|
|
timeout: 20m
|
|
script:
|
|
- ./install/cuttlefish-runner.sh
|
|
artifacts:
|
|
paths:
|
|
- results/
|
|
|
|
.test-android-cts:
|
|
variables:
|
|
ANDROID_CTS_TAG: ${CONDITIONAL_BUILD_ANDROID_CTS_TAG}
|
|
|
|
.test-angle:
|
|
variables:
|
|
ANGLE_TAG: ${CONDITIONAL_BUILD_ANGLE_TAG}
|
|
|
|
.test-crosvm:
|
|
variables:
|
|
CROSVM_TAG: ${CONDITIONAL_BUILD_CROSVM_TAG}
|
|
|
|
.test-fluster:
|
|
variables:
|
|
FLUSTER_TAG: ${CONDITIONAL_BUILD_FLUSTER_TAG}
|
|
FLUSTER_RESULTS: "${GPU_VERSION}-${FLUSTER_CODEC}"
|
|
HWCI_TEST_SCRIPT: install/fluster-runner.sh
|
|
|
|
.test-piglit:
|
|
variables:
|
|
PIGLIT_TAG: ${CONDITIONAL_BUILD_PIGLIT_TAG}
|
|
|
|
.test-vkd3d-proton:
|
|
variables:
|
|
VKD3D_PROTON_TAG: ${CONDITIONAL_BUILD_VKD3D_PROTON_TAG}
|
|
HWCI_TEST_SCRIPT: install/vkd3d-runner.sh
|
|
|
|
.piglit-traces-test:
|
|
artifacts:
|
|
when: on_failure
|
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}"
|
|
reports:
|
|
junit: results/junit.xml
|
|
paths:
|
|
- results/
|
|
exclude:
|
|
- results/*.shader_cache
|
|
extends:
|
|
- .test-piglit
|
|
variables:
|
|
# until we overcome Infrastructure issues, give traces extra 5 min before timeout
|
|
DEVICE_HANGING_TIMEOUT_SEC: 600
|
|
PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=${S3_TRACIE_PUBLIC_BUCKET} --jwt-file=${S3_JWT_FILE}
|
|
PIGLIT_NO_WINDOW: 1
|
|
HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh"
|
|
script:
|
|
- section_start variables "Variables passed through:"
|
|
- filter_env_vars
|
|
- section_end variables
|
|
- install/piglit/piglit-traces.sh
|
|
|
|
.deqp-test:
|
|
script:
|
|
- rm -rf results # Clear out old results if the docker container was cached
|
|
- ./install/deqp-runner.sh
|
|
artifacts:
|
|
exclude:
|
|
- results/*.shader_cache
|
|
reports:
|
|
junit: results/junit.xml
|
|
|
|
.fossilize-test:
|
|
script:
|
|
- ./install/fossilize-runner.sh
|
|
artifacts:
|
|
when: on_failure
|
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}"
|
|
paths:
|
|
- results/
|
|
|
|
.download_s3:
|
|
before_script:
|
|
- !reference [default, before_script]
|
|
# Use this instead of gitlab's artifacts download because it hits packet.net
|
|
# instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to
|
|
# improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for
|
|
# setup).
|
|
- section_start artifacts_download "Downloading artifacts from s3"
|
|
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
|
- rm -rf install
|
|
- (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x)
|
|
- section_end artifacts_download
|
|
|
|
# Jobs that need to pass before spending hardware resources on further testing
|
|
.required-for-hardware-jobs:
|
|
needs:
|
|
- job: rustfmt
|
|
optional: true
|
|
artifacts: false
|
|
- job: yaml-toml-shell-py-test
|
|
optional: true
|
|
artifacts: false
|