--- /dev/null
+# vim: sts=2 sw=2 et:
+
+os: linux
+dist: trusty
+group: stable
+
+language: cpp
+services:
+- docker
+
+matrix:
+ include:
+ - env: "IMAGE=archlinux-build TARGETS=codecov"
+ - env: "IMAGE=debian-build:latest TARGETS=test"
+ - env: "IMAGE=debian-build:testing TARGETS=test"
+ - env: "IMAGE=ubuntu-build:latest TARGETS=test"
+ - env: "IMAGE=ubuntu-build:devel TARGETS=test"
+ - env: "IMAGE=centos-build:latest TARGETS=test"
+
+script:
+ - bash scripts/docker/exec.bash
--- /dev/null
+FROM rafaelsoares/archlinux-devel
+
+RUN sudo pacman -S --noconfirm \
+ cppcheck \
+ cppunit \
+ freealut \
+ git \
+ glew \
+ glm \
+ openal \
+ sdl2 \
+ sdl2_image \
+ sdl2_net \
+ sdl2_ttf \
+ zlib \
+ ;
--- /dev/null
+FROM rafaelsoares/archlinux
+
+RUN sudo pacman -S --noconfirm \
+ freealut \
+ glew \
+ glm \
+ openal \
+ sdl2 \
+ sdl2_image \
+ sdl2_net \
+ sdl2_ttf \
+ zlib \
+ ;
--- /dev/null
+FROM centos:latest
+
+RUN yum -y update \
+ && yum -y install epel-release \
+ && yum -y update \
+ && yum -y group install "Development Tools"
+RUN yum -y install \
+ cppcheck \
+ cppunit-devel \
+ freealut-devel \
+ glew-devel \
+ glm-devel \
+ openal-soft-devel \
+ SDL2-devel \
+ SDL2_image-devel \
+ SDL2_net-devel \
+ SDL2_ttf-devel \
+ zlib-devel \
+ ;
--- /dev/null
+FROM debian:latest
+
+RUN apt update \
+ && apt -y install build-essential
+RUN apt -y install --no-install-recommends \
+ cppcheck \
+ libalut-dev \
+ libcppunit-dev \
+ libglew-dev \
+ libglm-dev \
+ libopenal-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libsdl2-net-dev \
+ libsdl2-ttf-dev \
+ zlib1g-dev \
+ ;
--- /dev/null
+FROM debian:testing
+
+RUN apt update \
+ && apt -y install build-essential
+RUN apt -y install --no-install-recommends \
+ cppcheck \
+ libalut-dev \
+ libcppunit-dev \
+ libglew-dev \
+ libglm-dev \
+ libopenal-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libsdl2-net-dev \
+ libsdl2-ttf-dev \
+ zlib1g-dev \
+ ;
--- /dev/null
+#!/bin/bash
+
+# execute from project root
+# environment varables:
+# IMAGE: name of the docker image to use
+# TARGETS: targets to pass to `make` inside the container
+# PASS_ENV: names of environment variables to import into
+# the container during build
+
+IMAGE="${IMAGE:-archlinux-build}"
+
+image_name="localhorsttv/${IMAGE}"
+image_path="scripts/docker/${IMAGE//:/-}"
+
+build_cmd="cd /repo && make -j\$(nproc) $TARGETS"
+
+local_conf=""
+
+if [[ "$TARGETS" == *codecov* ]]; then
+ local_conf="$local_conf $(bash <(curl -s https://codecov.io/env))"
+fi
+
+if [ -e "${image_path}/env" ]; then
+ local_conf="$local_conf --env-file ${image_path}/env"
+fi
+
+docker build -t "${image_name}" --pull=true "${image_path}"
+docker run -v "$PWD":/repo ${local_conf} "${image_name}" /bin/bash -c "${build_cmd}"
--- /dev/null
+FROM ubuntu:devel
+
+RUN apt update \
+ && apt -y install build-essential
+RUN apt -y install --no-install-recommends \
+ cppcheck \
+ libalut-dev \
+ libcppunit-dev \
+ libglew-dev \
+ libglm-dev \
+ libopenal-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libsdl2-net-dev \
+ libsdl2-ttf-dev \
+ zlib1g-dev \
+ ;
--- /dev/null
+FROM ubuntu:latest
+
+RUN apt update \
+ && apt -y install build-essential
+RUN apt -y install --no-install-recommends \
+ cppcheck \
+ libalut-dev \
+ libcppunit-dev \
+ libglew-dev \
+ libglm-dev \
+ libopenal-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libsdl2-net-dev \
+ libsdl2-ttf-dev \
+ zlib1g-dev \
+ ;
--- /dev/null
+LDXXFLAGS=-L/usr/lib/x86_64-linux-gnu