From 1926ba96424edb8f3af1a2d1f8a6d642ce93b284 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Mon, 28 Nov 2016 13:11:48 +0000 Subject: [PATCH 11/12] travis-ci: add an install script instead of open-coding it in .travis.yml Signed-off-by: Simon McVittie --- .travis.yml | 39 +------------------- tools/ci-install.sh | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 38 deletions(-) create mode 100755 tools/ci-install.sh diff --git a/.travis.yml b/.travis.yml index 03b884f..ca059e3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,44 +24,7 @@ sudo: required dist: trusty language: c install: - # travis-ci has a sources list for Chrome which doesn't support i386 - - ": | sudo tee /etc/apt/sources.list.d/google-chrome.list" - - test "$ci_host" != mingw || sudo dpkg --add-architecture i386 - - sudo apt-get -qq -y update - - > - test "$ci_host" != mingw || sudo apt-get -qq -y install - binutils-mingw-w64-i686 g++-mingw-w64-i686 wine:i386 - - sudo apt-get -qq -y build-dep dbus - - > - sudo apt-get -qq -y install - automake - autotools-dev - debhelper - dh-autoreconf - doxygen - dpkg-dev - gnome-desktop-testing - libapparmor-dev - libaudit-dev - libcap-ng-dev - libexpat-dev - libglib2.0-dev - libselinux1-dev - libx11-dev - python - python-dbus - python-gi - valgrind - xauth - xmlto - xsltproc - xvfb - # Ubuntu 14.04's autoconf-archive is too old - - > - wget - http://snapshot.debian.org/archive/debian/20160905T163745Z/pool/main/a/autoconf-archive/autoconf-archive_20160320-1_all.deb - - 'sudo dpkg -i autoconf-archive_*_all.deb' - - 'rm autoconf-archive_*_all.deb' + - ./tools/ci-install.sh script: # python-dbus and python-gi aren't available to Travis's version of # Python in /opt, which it uses as a default diff --git a/tools/ci-install.sh b/tools/ci-install.sh new file mode 100755 index 0000000..596db58 --- /dev/null +++ b/tools/ci-install.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +# Copyright © 2015-2016 Collabora Ltd. +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation files +# (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, +# publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +set -euo pipefail +set -x + +NULL= +: "${ci_distro:=ubuntu}" +: "${ci_host:=native}" +: "${ci_suite:=trusty}" + +if [ $(id -u) = 0 ]; then + sudo= +else + sudo=sudo +fi + +case "$ci_distro" in + (debian|ubuntu) + # travis-ci has a sources list for Chrome which doesn't support i386 + : | $sudo tee /etc/apt/sources.list.d/google-chrome.list + + if [ "$ci_host" = mingw ]; then + $sudo dpkg --add-architecture i386 + fi + + $sudo apt-get -qq -y update + + if [ "$ci_host" = mingw ]; then + $sudo apt-get -qq -y install \ + binutils-mingw-w64-i686 \ + g++-mingw-w64-i686 \ + wine:i386 \ + ${NULL} + fi + + $sudo apt-get -qq -y build-dep dbus + + $sudo apt-get -qq -y install \ + automake \ + autotools-dev \ + debhelper \ + dh-autoreconf \ + doxygen \ + dpkg-dev \ + gnome-desktop-testing \ + libapparmor-dev \ + libaudit-dev \ + libcap-ng-dev \ + libexpat-dev \ + libglib2.0-dev \ + libselinux1-dev \ + libx11-dev \ + python \ + python-dbus \ + python-gi \ + valgrind \ + xauth \ + xmlto \ + xsltproc \ + xvfb \ + ${NULL} + + case "$ci_suite" in + (trusty|jessie) + wget http://snapshot.debian.org/archive/debian/20160905T163745Z/pool/main/a/autoconf-archive/autoconf-archive_20160320-1_all.deb + $sudo dpkg -i autoconf-archive_*_all.deb + rm autoconf-archive_*_all.deb + ;; + esac + ;; + + (*) + echo "Don't know how to set up ${ci_distro}" >&2 + exit 1 + ;; +esac + +# vim:set sw=4 sts=4 et: -- 2.10.2