diff options
author | Guido Günther <agx@sigxcpu.org> | 2016-12-27 17:00:29 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2016-12-27 17:00:29 +0100 |
commit | 9ecb5a4eed538b6240630ed66b68c45f5b1b08e6 (patch) | |
tree | 38c406165459b580ff8f72833287d71056114b3e | |
parent | 2783ead2d39587982c8275f4bced5c5db180ce93 (diff) |
Add helper to run tests in docker container
and use this on travisci. Some ideas taken form travis.debian.net.
-rw-r--r-- | .travis.yml | 9 | ||||
-rw-r--r-- | HACKING | 2 | ||||
-rwxr-xr-x | tests/helpers/run-in-docker | 31 |
3 files changed, 41 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml index cfae53bc..60e70073 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,13 @@ --- +sudo: required language: python + +services: + - docker + python: - "2.7" install: "pip install -r requirements.txt" -script: flake8 +script: + - flake8 + - tests/helpers/run-in-docker @@ -17,6 +17,8 @@ other tests use: make all+net +You can run the tests in a debian/sid docker container by using +tests/helpers/run-in-docker. Building the API Docs --------------------- diff --git a/tests/helpers/run-in-docker b/tests/helpers/run-in-docker new file mode 100755 index 00000000..0c5ccc87 --- /dev/null +++ b/tests/helpers/run-in-docker @@ -0,0 +1,31 @@ +#!/bin/sh + +set -eu + +echo $(pwd) +cat >Dockerfile <<EOF +FROM debian:sid +ENV DEBIAN_FRONTEND=noninteractive +RUN echo "deb http://ftp.de.debian.org/debian sid main" > /etc/apt/sources.list +RUN apt-get update && apt-get dist-upgrade --yes +RUN apt-get install -y --no-install-recommends build-essential adduser +RUN adduser gbp --disabled-password --gecos='gbp test user' --shell=/bin/bash --home /git-buildpackage + +WORKDIR /git-buildpackage +COPY . . +RUN chown -R gbp: . + +RUN apt-get -y build-dep . +# Run as non root so permision tests pass +CMD su -c "make all+net" gbp +EOF + +CIDFILE="$(mktemp --dry-run)" +TAG="git-buildpackage/sid" +echo "Building Docker image ${TAG}" +docker build . --tag=${TAG} +docker run --cidfile=${CIDFILE} ${TAG} + +docker rm "$(cat ${CIDFILE})" >/dev/null +rm -f "${CIDFILE}" + |