diff --git a/.travis.yml b/.travis.yml index 44e5035e..7668af0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -135,6 +135,17 @@ jobs: script: .travis/script_osx.sh after_success: .travis/prepare_tarball.sh + - name: "MOD devices arm" + stage: "Build" + env: + - CONTAINER=jpcima/mod-plugin-builder + - CROSS_COMPILE=moddevices-arm + - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-moddevices" + before_install: .travis/before_install_moddevices.sh + install: .travis/install_moddevices.sh + script: .travis/script_moddevices.sh + after_success: .travis/prepare_tarball.sh + - stage: "Deploy" name: "Source packaging" if: (tag IS present) AND (branch = master) AND (type = push) diff --git a/.travis/before_install_moddevices.sh b/.travis/before_install_moddevices.sh new file mode 100755 index 00000000..2080f810 --- /dev/null +++ b/.travis/before_install_moddevices.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex +. .travis/docker_container.sh + +buildenv bash -c "echo Hello from container" # ensure to start the container diff --git a/.travis/docker_container.sh b/.travis/docker_container.sh index baf178f9..51ebdb00 100755 --- a/.travis/docker_container.sh +++ b/.travis/docker_container.sh @@ -1,15 +1,25 @@ #!/bin/bash +if [ -z "$CONTAINER" ]; then + echo "The variable CONTAINER is not set." + exit 1 +fi + buildenv() { setup_container "$CONTAINER" - docker exec -w "$(pwd)" -i -t "$container" "$@" + docker exec -w "$(pwd)" -u "$(id -u)" -i -t "$container" "$@" +} + +buildenv_as_root() { + setup_container "$CONTAINER" + docker exec -w "$(pwd)" -u 0 -i -t "$container" "$@" } setup_container() { if [ -f ${TRAVIS_BUILD_DIR}/docker-container-id ]; then container=$(cat ${TRAVIS_BUILD_DIR}/docker-container-id) else - container=$(docker run -d -i -t -v /home:/home "$1" /bin/bash) + container=$(docker run -d -i -t -v /home/travis:/home/travis "$1" /bin/bash) echo "$container" > ${TRAVIS_BUILD_DIR}/docker-container-id fi } diff --git a/.travis/install_mingw.sh b/.travis/install_mingw.sh index 746332ad..f97ee3d8 100755 --- a/.travis/install_mingw.sh +++ b/.travis/install_mingw.sh @@ -3,6 +3,6 @@ set -ex . .travis/docker_container.sh -buildenv pacman -Sqy --noconfirm -buildenv pacman -Sq --noconfirm base-devel wget mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile +buildenv_as_root pacman -Sqy --noconfirm +buildenv_as_root pacman -Sq --noconfirm base-devel wget mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile buildenv i686-w64-mingw32-gcc -v && buildenv i686-w64-mingw32-g++ -v && buildenv i686-w64-mingw32-cmake --version diff --git a/.travis/install_moddevices.sh b/.travis/install_moddevices.sh new file mode 100755 index 00000000..e28460cb --- /dev/null +++ b/.travis/install_moddevices.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +set -ex +. .travis/docker_container.sh diff --git a/.travis/script_moddevices.sh b/.travis/script_moddevices.sh new file mode 100755 index 00000000..7b074e15 --- /dev/null +++ b/.travis/script_moddevices.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -ex +. .travis/docker_container.sh + +mkdir -p build/${INSTALL_DIR} && cd build + +buildenv mod-plugin-builder /usr/local/bin/cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF .. +buildenv mod-plugin-builder make -j