summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2017-07-04 17:07:53 +0200
committerJulian Andres Klode <jak@debian.org>2017-07-04 17:14:02 +0200
commit28c8b7c6e60738fa2c46a3a6fc8fa33d74a87c36 (patch)
tree93fe5c95b9460f9b1aee7c834111dc2178969440
parent9f85bf8883e3c65a461abff2a0a40d01f8a1c95a (diff)
travis: Migrate to Docker
This is based on master, just with one less variant, and stretch as the base image. Gbp-Dch: ignore
-rw-r--r--.travis.yml37
-rw-r--r--Dockerfile11
2 files changed, 23 insertions, 25 deletions
diff --git a/.travis.yml b/.travis.yml
index 023107a68..7ef7b36c9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,33 +1,20 @@
language: cpp
cache: ccache
sudo: required
-dist: trusty
+services:
+ - docker
env:
- - TEST_SUITE=user CMAKE_FLAGS=
- - TEST_SUITE=root CMAKE_FLAGS=-DWITH_DOC=OFF
-before_install:
- - sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ wily main universe' -y
- - sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ xenial main' -y
- - |
- sudo sh -c '/bin/echo -e "Package: *\nPin: release n=wily\nPin-Priority: 1" > /etc/apt/preferences.d/wily'
- sudo sh -c '/bin/echo -e "Package: *\nPin: release n=xenial\nPin-Priority: 1" > /etc/apt/preferences.d/xenial'
- - sudo apt-get update -qq
+ - USER=travis CMAKE_FLAGS=
+ - USER=root CMAKE_FLAGS=-DWITH_DOC=OFF
install:
- - sudo apt-get -qq -y -t wily install gettext liblz4-dev python3-apt
- - sudo apt-get -qq -y -t xenial install cmake ninja-build
- - sudo ./prepare-release travis-ci
+ - sed -i -e "s#1000#$(id -u)#g" Dockerfile
+ - docker build --tag=apt-ci .
before_script:
- - ( mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Coverage -G Ninja $CMAKE_FLAGS .. )
- - ninja -C build
+ - docker run --rm -w $PWD -v $HOME/.ccache:$HOME/.ccache -v $PWD:$PWD --user=travis apt-ci sh -e -c "mkdir build && cd build && env PATH=/usr/lib/ccache:\$PATH cmake -DCMAKE_BUILD_TYPE=Coverage -G Ninja $CMAKE_FLAGS .."
+ - docker run --rm -w $PWD -v $HOME/.ccache:$HOME/.ccache -v $PWD:$PWD --user=travis apt-ci ninja -C build
script:
- - CTEST_OUTPUT_ON_FAILURE=1 ninja -C build test
- - DESTDIR=$PWD/rootdir chronic ninja -C build install
- - test "$TEST_SUITE" != "user" || ./test/integration/run-tests -qq
- - sudo adduser --force-badname --system --home /nonexistent --no-create-home --quiet _apt || true
- - sudo chmod go+x /home/travis
- - sudo chmod -R go+rwX /home/travis/build
- - test "$TEST_SUITE" != "root" || sudo ./test/integration/run-tests -qq
+ - docker run --rm -w $PWD -v $PWD:$PWD --user=travis apt-ci env CTEST_OUTPUT_ON_FAILURE=1 ninja -C build test
+ - docker run --rm -w $PWD -v $PWD:$PWD --user=travis apt-ci env DESTDIR=$PWD/rootdir chronic ninja -C build install
+ - docker run --rm -w $PWD -v $PWD:$PWD --user=$USER --tmpfs /tmp:suid,exec apt-ci unbuffer ./test/integration/run-tests -qq -j 4
after_script:
- - cd build
- - gcov -r $(find -name '*.gcno')
- - bash <(curl -s https://codecov.io/bash)
+ - docker run --rm -w $PWD/build -v $PWD:$PWD --user=$USER `bash <(curl -s https://codecov.io/env)` apt-ci bash -c 'bash <(curl -s https://codecov.io/bash)'
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000000000..b59a5dc6d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,11 @@
+FROM debian:stretch
+COPY . /tmp
+WORKDIR /tmp
+RUN sed -i s#://deb.debian.org#://cdn-fastly.deb.debian.org# /etc/apt/sources.list \
+ && apt-get update \
+ && adduser --home /home/travis travis --quiet --disabled-login --gecos "" --uid 1000 \
+ && env DEBIAN_FRONTEND=noninteractive apt-get install build-essential ccache ninja-build expect curl git -q -y \
+ && env DEBIAN_FRONTEND=noninteractive ./prepare-release travis-ci \
+ && dpkg-reconfigure ccache \
+ && rm -r /tmp/* \
+ && apt-get clean