diff options
-rw-r--r-- | .gitlab-ci.yml | 24 | ||||
-rwxr-xr-x | .gitlab-ci/docker-help.sh | 43 | ||||
-rw-r--r-- | Dockerfile | 14 |
3 files changed, 80 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ac12318..df2b5f55 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,6 +15,7 @@ stages: - build-containers - build - test + - containers - deploy ################# BUILD CONTAINERS ####################### @@ -85,12 +86,14 @@ build-containers:build-fedora: build:tests-fedora: stage: build script: - - meson $MESON_OPTIONS build + - meson --prefix=`pwd`/opt-igt $MESON_OPTIONS build - ninja -C build + - ninja -C build install - ninja -C build igt-gpu-tools-doc artifacts: paths: - build + - opt-igt build:tests-fedora-no-libunwind: stage: build @@ -273,3 +276,22 @@ pages: only: - master +############## CONTAINERS #################### + + +containers:igt: + stage: containers + image: docker:stable + services: + - docker:dind + dependencies: + - build:tests-fedora + variables: + DOCKER_HOST: tcp://docker:2375 + DOCKER_DRIVER: overlay2 + FORCE_REBUILD: 1 + script: + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker pull $CI_REGISTRY/$CI_PROJECT_PATH/build-fedora:commit-$CI_COMMIT_SHA + - docker tag $CI_REGISTRY/$CI_PROJECT_PATH/build-fedora:commit-$CI_COMMIT_SHA build-fedora + - .gitlab-ci/pull-or-rebuild.sh Dockerfile igt diff --git a/.gitlab-ci/docker-help.sh b/.gitlab-ci/docker-help.sh new file mode 100755 index 00000000..c04608dd --- /dev/null +++ b/.gitlab-ci/docker-help.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# +# Copyright © 2019 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +TEST_LIST=$(find /opt/igt/libexec/igt-gpu-tools -type f -printf "%f ") +cat << END +This is a igt-gpu-tools container: + - igt_runner is in the \$PATH. In order for the results to be available on the + host system, the directory has to be made available inside, e.g. + docker run -v results:/tmp/results igt-final igt_runner /tmp/results + - The test lists are in /opt/igt/share/igt-gpu-tools/ + - The test binaries are in IGT_TEST_ROOT=$IGT_TEST_ROOT + +In order for the graphic devices to be available inside the container, those +either need to be mapped with --device or the container needs to be run in +--privileged mode. + +Environment: + - PATH=$PATH + - LD_LIBRARY_PATH=$LD_LIBRARY_PATH + - IGT_TEST_ROOT=$IGT_TEST_ROOT + +Contents of /opt/igt/libexec/igt-gpu-tools: $TEST_LIST +END diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b601aecd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# Version number to bump for force image rebuild: 0 +FROM build-fedora + +RUN dnf install -y findutils && \ + dnf clean all + +COPY opt-igt /opt/igt +COPY .gitlab-ci/docker-help.sh /usr/local/bin/docker-help.sh + +ENV PATH="/opt/igt/bin:${PATH}" +ENV LD_LIBRARY_PATH="/opt/igt/lib:/opt/igt/lib64:${LD_LIBRARY_PATH}" +ENV IGT_TEST_ROOT="/opt/igt/libexec/igt-gpu-tools" + +CMD docker-help.sh |