You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
virglrenderer/ci/.gitlab-ci.yml

236 lines
6.7 KiB

image: docker:latest
cache:
paths:
- ccache
variables:
DOCKER_DRIVER: overlay2
# When running CI jobs, don't allow
# HW backed renderes, due to the
# variability it introduces.
# RENDER_DEVICE: /dev/dri/renderD128
stages:
- build
- sanity test
- test
build docker image:
stage: build
services:
- docker:dind
before_script:
- mkdir -p results
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- time docker pull $CI_REGISTRY_IMAGE:latest || true
- echo $MESA_COMMIT
- if [[ -n "$MESA_COMMIT" ]]; then
time docker build
--build-arg KNOWN_GOOD_MESA=$MESA_COMMIT
-t $CI_REGISTRY_IMAGE
--cache-from $CI_REGISTRY_IMAGE:latest ci
2>&1 | tee results/docker_build_log.txt;
else
time docker build
-t $CI_REGISTRY_IMAGE
--cache-from $CI_REGISTRY_IMAGE:latest ci
2>&1 | tee results/docker_build_log.txt;
fi
- docker history $CI_REGISTRY_IMAGE:latest
- time docker push $CI_REGISTRY_IMAGE:latest 2>&1 | tee results/docker_push_log.txt
- "grep -o 'digest: sha256:[0-9a-f]\\+' results/docker_push_log.txt |
cut -f 2 -d ' ' |
tee results/docker_image_digest.txt"
only:
- branches
- tags
- merge_requests
artifacts:
when: always
paths:
- results/
make check:
stage: sanity test
services:
- docker:dind
before_script:
- mkdir -p ccache
- mkdir -p results
- export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt)
- echo $DOCKER_IMAGE_DIGEST
script:
- echo core > /proc/sys/kernel/core_pattern || true
- echo 0 > /proc/sys/kernel/core_uses_pid || true
- if [[ -n "$RENDER_DEVICE" ]]; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
- echo RD_CONFIG=$RD_CONFIG
- docker run
--ulimit core=99999999999:99999999999
$RD_CONFIG
-v $PWD:/virglrenderer
$CI_REGISTRY_IMAGE@$DOCKER_IMAGE_DIGEST
bash -c "/virglrenderer/ci/run_tests.sh --make-check"
2>&1 | tee results/docker_test_log.txt
- echo "\n\n"
only:
- branches
- tags
- merge_requests
artifacts:
when: always
paths:
- results/
piglit - gl host:
stage: test
services:
- docker:dind
before_script:
- mkdir -p ccache
- mkdir -p results
- export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt)
- echo $DOCKER_IMAGE_DIGEST
script:
- echo core > /proc/sys/kernel/core_pattern || true
- echo 0 > /proc/sys/kernel/core_uses_pid || true
- if [[ -n "$RENDER_DEVICE" ]]; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
- echo RD_CONFIG=$RD_CONFIG
- docker run
--ulimit core=99999999999:99999999999
$RD_CONFIG
-v $PWD:/virglrenderer
$CI_REGISTRY_IMAGE@$DOCKER_IMAGE_DIGEST
bash -c "/virglrenderer/ci/run_tests.sh --piglit-gl"
2>&1 | tee results/docker_test_log.txt
- echo "\n\n"
only:
- merge_requests
piglit - gles host:
stage: test
services:
- docker:dind
before_script:
- mkdir -p ccache
- mkdir -p results
- export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt)
- echo $DOCKER_IMAGE_DIGEST
script:
- echo core > /proc/sys/kernel/core_pattern || true
- echo 0 > /proc/sys/kernel/core_uses_pid || true
- if [[ -n "$RENDER_DEVICE" ]]; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
- echo RD_CONFIG=$RD_CONFIG
- docker run
--ulimit core=99999999999:99999999999
$RD_CONFIG
-v $PWD:/virglrenderer
$CI_REGISTRY_IMAGE@$DOCKER_IMAGE_DIGEST
bash -c "/virglrenderer/ci/run_tests.sh --piglit-gles"
2>&1 | tee results/docker_test_log.txt
- echo "\n\n"
only:
- merge_requests
artifacts:
when: always
paths:
- results/
cts - gl host:
stage: test
services:
- docker:dind
before_script:
- mkdir -p ccache
- mkdir -p results
- export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt)
- echo $DOCKER_IMAGE_DIGEST
script:
- echo core > /proc/sys/kernel/core_pattern || true
- echo 0 > /proc/sys/kernel/core_uses_pid || true
- if [[ -n "$RENDER_DEVICE" ]]; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
- echo RD_CONFIG=$RD_CONFIG
- docker run
--ulimit core=99999999999:99999999999
$RD_CONFIG
-v $PWD:/virglrenderer
$CI_REGISTRY_IMAGE@$DOCKER_IMAGE_DIGEST
bash -c "/virglrenderer/ci/run_tests.sh --deqp-gl"
2>&1 | tee results/docker_test_log.txt
- echo "\n\n"
only:
- merge_requests
artifacts:
when: always
paths:
- results/
cts - gles host:
stage: test
services:
- docker:dind
before_script:
- mkdir -p ccache
- mkdir -p results
- export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt)
- echo $DOCKER_IMAGE_DIGEST
script:
- echo core > /proc/sys/kernel/core_pattern || true
- echo 0 > /proc/sys/kernel/core_uses_pid || true
- if [[ -n "$RENDER_DEVICE" ]]; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
- echo RD_CONFIG=$RD_CONFIG
- docker run
--ulimit core=99999999999:99999999999
$RD_CONFIG
-v $PWD:/virglrenderer
$CI_REGISTRY_IMAGE@$DOCKER_IMAGE_DIGEST
bash -c "/virglrenderer/ci/run_tests.sh --deqp-gles"
2>&1 | tee results/docker_test_log.txt
- echo "\n\n"
only:
- merge_requests
artifacts:
when: always
paths:
- results/
unreliable tests:
stage: test
services:
- docker:dind
before_script:
- mkdir -p ccache
- mkdir -p results
- export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt)
- echo $DOCKER_IMAGE_DIGEST
script:
- echo core > /proc/sys/kernel/core_pattern || true
- echo 0 > /proc/sys/kernel/core_uses_pid || true
- if [[ -n "$RENDER_DEVICE" ]]; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
- echo RD_CONFIG=$RD_CONFIG
- docker run
--ulimit core=99999999999:99999999999
$RD_CONFIG
-v $PWD:/virglrenderer
$CI_REGISTRY_IMAGE@$DOCKER_IMAGE_DIGEST
bash -c "/virglrenderer/ci/run_tests.sh --deqp-gl-unreliable --deqp-gles-unreliable --piglit-gl-unreliable --piglit-gles-unreliable || true"
2>&1 | tee results/docker_test_log.txt
- echo "\n\n"
only:
- merge_requests
artifacts:
when: always
paths:
- results/