Merge pull request #2869 from j-selby/docker-build

Travis: Use Docker to build for Linux
This commit is contained in:
James Rowe 2017-08-11 08:39:14 -06:00 committed by GitHub
commit 8fd28244e4
4 changed files with 26 additions and 50 deletions

20
.travis-build-docker.sh Normal file
View file

@ -0,0 +1,20 @@
#!/bin/sh
set -e
set -x
cd /citra
apt-get update
apt-get install -y build-essential libsdl2-dev qtbase5-dev libqt5opengl5-dev libcurl4-openssl-dev libssl-dev wget git
# Get a recent version of CMake
wget https://cmake.org/files/v3.9/cmake-3.9.0-Linux-x86_64.sh
echo y | sh cmake-3.9.0-Linux-x86_64.sh --prefix=cmake
export PATH=/citra/cmake/cmake-3.9.0-Linux-x86_64/bin:$PATH
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4
ctest -VV -C Release

View file

@ -44,15 +44,7 @@ fi
#if OS is linux or is not set #if OS is linux or is not set
if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
export CC=gcc-6 docker run -v $(pwd):/citra ubuntu:16.04 /bin/bash /citra/.travis-build-docker.sh
export CXX=g++-6
export PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build && cd build
cmake ..
make -j4
ctest -VV -C Release
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
set -o pipefail set -o pipefail

View file

@ -5,35 +5,7 @@ set -x
#if OS is linux or is not set #if OS is linux or is not set
if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then
export CC=gcc-6 docker pull ubuntu:16.04
export CXX=g++-6
mkdir -p $HOME/.local
if [ ! -e $HOME/.local/bin/cmake ]; then
echo "CMake not found in the cache, get and extract it..."
curl -L http://www.cmake.org/files/v3.6/cmake-3.6.3-Linux-x86_64.tar.gz \
| tar -xz -C $HOME/.local --strip-components=1
else
echo "Using cached CMake"
fi
if [ ! -e $HOME/.local/lib/libSDL2.la ]; then
echo "SDL2 not found in cache, get and build it..."
wget http://libsdl.org/release/SDL2-2.0.5.tar.gz -O - | tar xz
cd SDL2-2.0.5
./configure --prefix=$HOME/.local
make -j4 && make install
else
echo "Using cached SDL2"
fi
export DEBIAN_FRONTEND=noninteractive
# Amazing placebo security
curl http://apt.llvm.org/llvm-snapshot.gpg.key | sudo -E apt-key add -
sudo -E add-apt-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main"
sudo -E apt-get -yq update
sudo -E apt-get -yq install clang-format-3.9
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
brew update brew update
brew install qt5 sdl2 dylibbundler p7zip brew install qt5 sdl2 dylibbundler p7zip

View file

@ -8,23 +8,15 @@ matrix:
sudo: false sudo: false
osx_image: xcode7.3 osx_image: xcode7.3
services:
- docker
addons: addons:
apt: apt:
sources:
- ubuntu-toolchain-r-test
packages: packages:
- gcc-6 - clang-format-3.9
- g++-6
- qt5-default
- libqt5opengl5-dev
- xorg-dev
- lib32stdc++6 # For CMake
- p7zip-full - p7zip-full
cache:
directories:
- "$HOME/.local"
install: "./.travis-deps.sh" install: "./.travis-deps.sh"
script: "./.travis-build.sh" script: "./.travis-build.sh"
after_success: "./.travis-upload.sh" after_success: "./.travis-upload.sh"