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 .docker-setup: &docker-setup - mkdir -p ccache - mkdir -p results - export DOCKER_IMAGE_DIGEST=$(cat results/docker_image_digest.txt) - echo $DOCKER_IMAGE_DIGEST - 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 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 - docker build --build-arg KNOWN_GOOD_MESA=$MESA_COMMIT --build-arg MESA_REPO=$MESA_REPO -t $CI_REGISTRY_IMAGE --cache-from $CI_REGISTRY_IMAGE:latest ci 2>&1 | tee results/docker_build_log.txt; - 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 - schedules artifacts: when: always paths: - results/ make check: stage: sanity test services: - docker:dind before_script: *docker-setup script: - 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 - schedules artifacts: when: always paths: - results/ piglit - gl host: stage: test services: - docker:dind before_script: *docker-setup script: - 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 - schedules piglit - gles host: stage: test services: - docker:dind before_script: *docker-setup script: - 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 - schedules artifacts: when: always paths: - results/ cts gl - gl host: stage: test services: - docker:dind before_script: *docker-setup script: - 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-gl-tests" 2>&1 | tee results/docker_test_log.txt - echo "\n\n" only: - merge_requests - schedules artifacts: when: always paths: - results/ cts gles - gl host: stage: test services: - docker:dind before_script: *docker-setup script: - 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-gles-tests" 2>&1 | tee results/docker_test_log.txt - echo "\n\n" only: - merge_requests - schedules artifacts: when: always paths: - results/ cts gl - gles host: stage: test services: - docker:dind before_script: *docker-setup script: - 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-gl-tests" 2>&1 | tee results/docker_test_log.txt - echo "\n\n" only: - merge_requests - schedules artifacts: when: always paths: - results/ cts gles - gles host: stage: test services: - docker:dind before_script: *docker-setup script: - 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-gles-tests" 2>&1 | tee results/docker_test_log.txt - echo "\n\n" only: - merge_requests - schedules artifacts: when: always paths: - results/ unreliable tests: stage: test services: - docker:dind before_script: *docker-setup script: - 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 - schedules artifacts: when: always paths: - results/