Thanks, Dylan, Eric and Juan! I've just pushed this changed. ☺
PS: In my Travis-CI, the job is taking ~13 min. right now. On Mon, 2018-02-05 at 09:29 -0800, Dylan Baker wrote: > I haven't looked too closely at this, but I like the idea of using docker to > allow running the cmake based job. > > Acked-by: Dylan Baker <dy...@pnwbakers.com> > > Quoting Andres Gomez (2018-01-31 13:11:52) > > Until now we were only running the python unit tests. > > > > It seems desirable to also check that the CMake based build compiles > > successfully. We do that now using docker. > > > > The docker build can be tweaked with some environment variables and, > > also, be stored in the docker hub if desired. Check the changes for > > extra details regarding these variables. > > > > v2: Removed other build possibilities other than just from inside > > Travis-CI, as suggested by Juan. > > v3: Replaced the "RELEASE" parameter to create the docker image with > > "PARENT" and removed some unneeded documentation after v2, as > > suggested by Juan. > > v4: > > - Use DOCKER_PARENT, DOCKER_IMAGE and DOCKER_TAG variables from the > > custom Travis-CI setup to define the PARENT, IMAGE and TAG > > parameters during the docker image creation. > > - Upload the image only if DOCKER_IMAGE and DOCKER_TAG are set. > > > > Cc: Dylan Baker <dy...@pnwbakers.com> > > Cc: Juan A. Suarez <jasua...@igalia.com> > > Signed-off-by: Andres Gomez <ago...@igalia.com> > > Reviewed-by: Juan A. Suarez <jasua...@igalia.com> > > --- > > .travis.yml | 47 ++++++++++++++++++++++++++++-- > > docker/Rockerfile.piglit | 74 > > ++++++++++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 118 insertions(+), 3 deletions(-) > > create mode 100644 docker/Rockerfile.piglit > > > > diff --git a/.travis.yml b/.travis.yml > > index b47829ff9..b4cbcca49 100644 > > --- a/.travis.yml > > +++ b/.travis.yml > > @@ -1,5 +1,16 @@ > > +sudo: false > > +os: linux > > language: python > > -cache: pip > > +cache: > > + - ccache > > + - pip > > +services: > > + - docker > > + > > +env: > > + global: > > + - BUILD=pytest > > + > > matrix: > > include: > > - python: 2.7 > > @@ -12,7 +23,37 @@ matrix: > > env: TOX_ENV="py35-{generator,noaccel,accel-nix,streams}" > > - python: 3.6 > > env: TOX_ENV="py36-{generator,noaccel,accel-nix,streams}" > > + - env: BUILD=cmake > > + > > install: > > - pip install tox > > + - | > > + if [[ $BUILD == pytest ]]; then > > + pip install tox > > + else > > + wget > > https://github.com/grammarly/rocker/releases/download/1.3.1/rocker-1.3.1-linux_amd64.tar.gz > > + tar xvf rocker-1.3.1-linux_amd64.tar.gz > > + rm rocker-1.3.1-linux_amd64.tar.gz > > + fi > > + > > +before_script: > > + - | > > + if [[ $BUILD != pytest ]]; then > > + mkdir -p -m777 ~/.ccache > > + fi > > + > > script: > > - - tox -e $TOX_ENV > > + - | > > + if [[ $BUILD == pytest ]]; then > > + tox -e $TOX_ENV > > + else > > + ./rocker build -f docker/Rockerfile.piglit ${DOCKER_TAG:+--var > > TAG=}${DOCKER_TAG} ${DOCKER_IMAGE:+--var IMAGE=}${DOCKER_IMAGE} > > ${DOCKER_PARENT:+--var PARENT=}${DOCKER_PARENT} . > > + fi > > + > > +after_success: > > + - | > > + if [[ $BUILD != pytest ]]; then > > + if [[ -n $DOCKER_IMAGE && -n $DOCKER_TAG && -n $DOCKER_USERNAME && > > $TRAVIS_BRANCH == master ]]; then > > + docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}" > > + docker push "${DOCKER_IMAGE}":"${DOCKER_TAG}" > > + fi > > + fi > > diff --git a/docker/Rockerfile.piglit b/docker/Rockerfile.piglit > > new file mode 100644 > > index 000000000..0d8f8bb45 > > --- /dev/null > > +++ b/docker/Rockerfile.piglit > > @@ -0,0 +1,74 @@ > > +# > > +# This builds Piglit. > > +# > > +# ~~~ > > +# rocker build -f Rockerfile.piglit [--attach] > > \ > > +# [--var IMAGE=freedesktop/mesa] # freedesktop/mesa, myrepo/myproyect, > > ... \ > > +# [--var TAG=piglit] # piglit-17.0, piglit-13.0, ... > > \ > > +# [--var PARENT=ubuntu:xenial] # ubuntu:xenial, > > freedesktop/mesa:17.3, ... > > +# ~~~ > > +# > > +# Environment variables that are used in the build: > > +# - MAKEFLAGS: flags to pass to make (e.g., "-j8") > > +# - CCACHE_DIR: ccache directory (default: ~/.ccache) > > +# > > +# To run > > +# > > +# ~~~ > > +# mkdir -p -m777 ~/my_results_dir > > +# docker run --privileged --rm -t -v ~/my_results_dir:/results:Z \ > > +# -v /tmp/.X11-unix:/tmp/.X11-unix freedesktop/mesa:piglit > > +# ~~~ > > +# > > + > > +{{ $image := (or .IMAGE "freedesktop/mesa") }} > > +{{ $parent_image := (or .PARENT "ubuntu:xenial") }} > > +{{ $ccachedir := (or .Env.CCACHE_DIR "~/.ccache") }} > > + > > +FROM {{ $parent_image }} > > + > > +LABEL maintainer "Andres Gomez <ago...@igalia.com>" > > + > > +USER root > > + > > +ENV LC_ALL=C.UTF-8 > > + > > +RUN apt-get update \ > > + && apt-get -y --no-install-recommends install sudo gcc g++ ccache \ > > + git pkg-config bash-completion cmake \ > > + libz-dev libpng-dev libgl-dev libegl1-mesa-dev libwaffle-dev \ > > + python3-setuptools python3-pip \ > > + && rm -fr /var/lib/apt/lists/* > > + > > +RUN pip3 install numpy six mako > > + > > +RUN getent passwd local > /dev/null || adduser --gecos "" local && passwd > > -d local && adduser local sudo > > + > > +USER local > > + > > +{{ if .Env.MAKEFLAGS }} > > +ENV MAKEFLAGS={{ .Env.MAKEFLAGS }} > > +{{ end }} > > + > > +WORKDIR /home/local > > + > > +MOUNT {{ $ccachedir }}:/home/local/.ccache:Z > > + > > +RUN sudo chown -R local:local /home/local/.ccache > > + > > +ENV PATH=/usr/lib/ccache:$PATH > > + > > +ADD . /home/local/piglit > > +RUN sudo chown -R local:local /home/local/piglit > > + > > +WORKDIR /home/local/piglit > > + > > +ATTACH [ "/bin/bash" ] > > + > > +RUN cmake . && cmake --build . > > + > > +VOLUME /results > > + > > +{{ if .TAG }} > > +TAG {{ $image }}:{{ .TAG }} > > +{{ end }} > > -- > > 2.15.1 > > -- Br, Andres _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit