Add a Dockerfile, simplify the travis script using docker

This commit is contained in:
Maschell 2018-09-23 13:54:56 +02:00
parent 45d032bcb2
commit 89d8537d38
3 changed files with 27 additions and 42 deletions

View File

@ -1,52 +1,17 @@
language: cpp
os: linux
sudo: false
dist: trusty
sudo: required
branches:
only:
- master
env:
global:
- DEVKITPRO=/opt/devkitpro
- WUT_ROOT=/opt/devkitpro/wut
- DEVKITPPC=/opt/devkitpro/devkitPPC
- PORTLIBREPOS=$HOME/portlibrepos
cache:
directories:
- "$HOME/.local"
- "$DEVKITPRO"
services:
- docker
addons:
apt:
packages:
- p7zip-full
before_install:
- mkdir -p "${PORTLIBREPOS}"
- mkdir -p "${DEVKITPRO}"
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
-O /tmp/devkitpro-pacman.deb; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo dpkg -i /tmp/devkitpro-pacman.deb;
fi
- yes | sudo dkp-pacman -Syu devkitPPC --needed
- yes | sudo dkp-pacman -Syu general-tools --needed
- wget https://github.com/decaf-emu/wut/releases/download/1.0.0-beta/wut.linux64.7z
install:
- 7z x -y $(ls | grep "linux") -o${WUT_ROOT}
- cd $PORTLIBREPOS
- git clone https://github.com/Maschell/WiiUPluginSystem.git
- git clone https://github.com/Maschell/libutils.git -b wut
- cd WiiUPluginSystem
- make && make install
- cd $PORTLIBREPOS
- cd libutils
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=$WUT_ROOT/share/wut.toolchain.cmake -DCMAKE_INSTALL_PREFIX=$WUT_ROOT
../
- make install
- cd $PORTLIBREPOS
before_script:
- cd $TRAVIS_BUILD_DIR/
- docker build . -t playground-builder
script:
- make -j8
- docker run -it --rm -v ${PWD}:/project playground-builder make
before_deploy:
- cd $TRAVIS_BUILD_DIR/
- mkdir -p "wiiu/plugins"

6
Dockerfile Normal file
View File

@ -0,0 +1,6 @@
FROM wups/core-with-wut:0.1
# Get dependencies
COPY --from=wiiuwut/libutils:0.1 /artifacts $WUT_ROOT
WORKDIR project

View File

@ -36,3 +36,17 @@ For building you need:
Some plugins may require more libraries to be installed. Checkout their Makefile for more information.
You could also take a look at the provided travis script and extract the needed building steps.
### Building using the Dockerfile
It's possible to use a docker image for building. This way you don't need anything installed on your host system.
```
# Build docker image (only needed once
docker build . -t playground-builder
# make
docker run -it --rm -v ${PWD}:/project playground-builder make
# make clean
docker run -it --rm -v ${PWD}:/project playground-builder make clean
```