]> git.sur5r.net Git - i3/i3lock/commitdiff
travis: build in Debian sid Docker container 185/head
authorMichael Stapelberg <michael@stapelberg.de>
Fri, 11 May 2018 13:30:48 +0000 (15:30 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 11 May 2018 13:40:43 +0000 (15:40 +0200)
.travis.yml
travis/Dockerfile [new file with mode: 0644]

index c9db5856b839b516dab54d004e5742915554ead6..15ad1e4dbb68a4f0b0b106074999340b04e97dda 100644 (file)
@@ -1,6 +1,8 @@
 # Use Ubuntu 14.04 (trusty), as per http://blog.travis-ci.com/2015-10-14-opening-up-ubuntu-trusty-beta/
-sudo: required
+sudo: false
 dist: trusty
+services:
+  - docker
 language: c
 compiler:
   - gcc
@@ -9,21 +11,7 @@ addons:
   apt:
     packages:
     - clang-format-3.5
-    - pkg-config
-    - libpam0g-dev
-    - libcairo2-dev
-    - libxcb1-dev
-    - libxcb-dpms0-dev
-    - libxcb-image0-dev
-    - libxcb-util0-dev
-    - libev-dev
-    - libxcb-xinerama0-dev
-    - libxcb-xkb-dev
-before_install:
-  - "echo 'APT::Default-Release \"trusty\";' | sudo tee /etc/apt/apt.conf.d/default-release"
-  - "echo 'deb http://archive.ubuntu.com/ubuntu/ xenial main universe' | sudo tee /etc/apt/sources.list.d/wily.list"
-  - sudo apt-get update
-  - sudo apt-get --force-yes -y install -t xenial libxkbcommon-dev libxkbcommon-x11-dev
 script:
-  - autoreconf -fi && mkdir -p build && cd build && (../configure || (cat config.log; false)) && make -j CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Werror"
   - clang-format-3.5 -i *.[ch] && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false)
+  - docker build --pull --no-cache --rm -t=i3lock -f travis/Dockerfile .
+  - docker run -e CC=$CC -v $PWD:/usr/src:rw i3lock /bin/sh -c 'autoreconf -fi && mkdir -p build && cd build && (../configure || (cat config.log; false)) && make -j V=1 CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Werror"'
diff --git a/travis/Dockerfile b/travis/Dockerfile
new file mode 100644 (file)
index 0000000..5381276
--- /dev/null
@@ -0,0 +1,25 @@
+# vim:ft=Dockerfile
+FROM debian:sid
+
+RUN echo force-unsafe-io > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup
+# Paper over occasional network flakiness of some mirrors.
+RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry
+
+# NOTE: I tried exclusively using gce_debian_mirror.storage.googleapis.com
+# instead of httpredir.debian.org, but the results (Fetched 123 MB in 36s (3357
+# kB/s)) are not any better than httpredir.debian.org (Fetched 123 MB in 34s
+# (3608 kB/s)). Hence, let’s stick with httpredir.debian.org (default) for now.
+
+# Install mk-build-deps (for installing the i3 build dependencies),
+# clang and clang-format-3.8 (for checking formatting and building with clang),
+# lintian (for checking spelling errors),
+# test suite dependencies (for running tests)
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+    build-essential clang git autoconf automake libxcb-randr0-dev pkg-config libpam0g-dev \
+    libcairo2-dev libxcb1-dev libxcb-dpms0-dev libxcb-image0-dev libxcb-util0-dev \
+    libxcb-xrm-dev libev-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev \
+    libxkbcommon-x11-dev && \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/src