diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..fbb7724e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,21 @@ +image: ubuntu:16.04 +before_script: + - apt-get update -qq && apt-get install -y -qq autoconf automake build-essential cmake libtool libjpeg8-dev libjbig-dev liblzma-dev ninja-build zlib1g-dev + +stages: + - build + +autoconf: + stage: build + script: + - sh build/gitlab-ci autoconf + +cmake-makefiles: + stage: build + script: + - sh build/gitlab-ci cmake "Unix Makefiles" Release + +cmake-ninja: + stage: build + script: + - sh build/gitlab-ci cmake "Ninja" Debug diff --git a/build/gitlab-ci b/build/gitlab-ci new file mode 100644 index 00000000..25b3b92f --- /dev/null +++ b/build/gitlab-ci @@ -0,0 +1,56 @@ +#!/bin/sh +# This script is used for testing the build, primarily for use +# with travis, but may be used by hand as well. + +set -e +set -x + +# Test autoconf build +autoconf_build() +{ + autoreconf -ivf + + mkdir autoconf-build + cd autoconf-build + echo "Running ../configure --prefix=$(pwd)/../autoconf-install) ${opts}" + ../configure --prefix=$(pwd)/../autoconf-install ${opts} + make + make install + make check +} + +# Test autoconf build +cmake_build() +{ + PATH="$(pwd)/tools/bin:$PATH" + if [ "$(uname -s)" = "Darwin" ]; then + PATH="$(pwd)/tools/CMake.app/Contents/bin:$PATH" + fi + mkdir cmake-build + cd cmake-build + echo "Running cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../autoconf-install ${opts} .." + cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../autoconf-install ${opts} .. + cmake --build . + cmake --build . --target install + ctest -V +} + +build=$1 +shift + +case $build in + autoconf) + echo "Testing Autoconf build" + autoconf_build "$@" + ;; + cmake) + echo "Testing CMake build" + cmake_build "$@" + ;; + *) + echo "Invalid argument: \"$arg\"" >&2 + exit 1 + ;; +esac + +exit 0