Skip to content

Commit

Permalink
travis: improve docker images generation for building
Browse files Browse the repository at this point in the history
Make a build heriarchy to reduce images size.
Add Android Thing Build.

Signed-off-by: Nicolas Oliver <[email protected]>
Signed-off-by: Brendan Le Foll <[email protected]>
  • Loading branch information
dnoliver authored and arfoll committed Jul 21, 2017
1 parent 3d77c86 commit 4bedd68
Show file tree
Hide file tree
Showing 12 changed files with 423 additions and 197 deletions.
37 changes: 21 additions & 16 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,40 @@ env:
- TARGET=java
- TARGET=node4
- TARGET=node5
- TARGET=python2 JSONPLAT=ON
- TARGET=python3 JSONPLAT=ON
- TARGET=java JSONPLAT=ON
- TARGET=node4 JSONPLAT=ON
- TARGET=node5 JSONPLAT=ON
- TARGET=python2 BUILDARCH=MOCK
- TARGET=python3 BUILDARCH=MOCK
- TARGET=java BUILDARCH=MOCK
- TARGET=node4 BUILDARCH=MOCK
- TARGET=node5 BUILDARCH=MOCK
- TARGET=android
- TARGET=sonar-scan
- JSONPLAT=ON TARGET=python2
- JSONPLAT=ON TARGET=python3
- JSONPLAT=ON TARGET=java
- JSONPLAT=ON TARGET=node4
- JSONPLAT=ON TARGET=node5
- BUILDARCH=MOCK TARGET=python2
- BUILDARCH=MOCK TARGET=python3
- BUILDARCH=MOCK TARGET=java
- BUILDARCH=MOCK TARGET=node4
- BUILDARCH=MOCK TARGET=node5

matrix:
exclude:
- compiler: clang
env: TARGET=java
- compiler: clang
env: TARGET=java JSONPLAT=ON
env: JSONPLAT=ON TARGET=java
- compiler: clang
env: TARGET=java BUILDARCH=MOCK
env: BUILDARCH=MOCK TARGET=java
- compiler: gcc
env: TARGET=android
- compiler: clang
env: TARGET=sonar-scan
allow_failures:
- compiler: gcc
env: TARGET=node4 JSONPLAT=ON
env: JSONPLAT=ON TARGET=node4
- compiler: clang
env: TARGET=node4 JSONPLAT=ON
env: JSONPLAT=ON TARGET=node4
- compiler: gcc
env: TARGET=node5 JSONPLAT=ON
env: JSONPLAT=ON TARGET=node5
- compiler: clang
env: TARGET=node5 JSONPLAT=ON
env: JSONPLAT=ON TARGET=node5

services:
- docker
Expand All @@ -59,6 +62,8 @@ before_script:
- if [ "$CXX" == "g++" ]; then export CXX=g++-4.8; fi
- if [ "$CC" == "clang" ]; then export CC=clang-3.8; fi
- if [ "$CXX" == "clang++" ]; then export CXX=clang++-3.8; fi
- docker-compose build base
- if [ "$TARGET" == "android" ]; then docker-compose build java; fi
- docker-compose build ${TARGET}

script:
Expand Down
116 changes: 0 additions & 116 deletions Dockerfile

This file was deleted.

148 changes: 83 additions & 65 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,63 @@ version: '2.1'

services:

main:
base:
image: mraa-base
build:
context: .
dockerfile: Dockerfile
dockerfile: docker/Dockerfile.base
args:
- http_proxy
- https_proxy
- no_proxy
- BUILDDOC=${BUILDDOC:-OFF}
- BUILDSWIG=${BUILDSWIG:-OFF}
- BUILDSWIGPYTHON=${BUILDSWIGPYTHON:-OFF}
- BUILDSWIGJAVA=${BUILDSWIGJAVA:-OFF}
- BUILDSWIGNODE=${BUILDSWIGNODE:-OFF}
- USBPLAT=${USBPLAT:-OFF}
- FIRMATA=${FIRMATA:-OFF}
- ONEWIRE=${ONEWIRE:-OFF}
- JSONPLAT=${JSONPLAT:-OFF}
- IMRAA=${IMRAA:-OFF}
- FTDI4222=${FTDI4222:-OFF}
- IPK=${IPK:-OFF}
- RPM=${RPM:-OFF}
- ENABLEEXAMPLES=${ENABLEEXAMPLES:-ON}
- INSTALLGPIOTOOL=${INSTALLGPIOTOOL:-OFF}
- INSTALLTOOLS=${INSTALLTOOLS:-OFF}
- BUILDTESTS=${BUILDTESTS:-ON}
- CC=${CC:-clang-3.8}
- CXX=${CXX:-clang++-3.8}
- NODE_VERSION=${NODE_VERSION:-v4.4.7}
- BUILDARCH=${BUILDARCH}
- MRAA_SRC_DIR=${MRAA_SRC_DIR:-/usr/src/app}
environment:
- http_proxy
- https_proxy
- no_proxy
- MRAA_SRC_DIR=/usr/src/app
- BUILDDOC=${BUILDDOC:-OFF}
- BUILDSWIG=${BUILDSWIG:-OFF}
- BUILDSWIGPYTHON=${BUILDSWIGPYTHON:-OFF}
- BUILDTESTS=${BUILDTESTS:-ON}
- USEPYTHON3TESTS=${USEPYTHON3TESTS:-OFF}
- BUILDSWIGJAVA=${BUILDSWIGJAVA:-OFF}
- BUILDSWIGNODE=${BUILDSWIGNODE:-OFF}
- USBPLAT=${USBPLAT:-OFF}
- FIRMATA=${FIRMATA:-OFF}
- ONEWIRE=${ONEWIRE:-ON}
- JSONPLAT=${JSONPLAT:-OFF}
- IMRAA=${IMRAA:-OFF}
- FTDI4222=${FTDI4222:-OFF}
- IPK=${IPK:-OFF}
- RPM=${RPM:-OFF}
- ENABLEEXAMPLES=${ENABLEEXAMPLES:-ON}
- INSTALLGPIOTOOL=${INSTALLGPIOTOOL:-OFF}
- INSTALLTOOLS=${INSTALLTOOLS:-ON}
- CC=${CC:-clang-3.8}
- CXX=${CXX:-clang++-3.8}
- BUILDARCH=${BUILDARCH}
volumes:
- .:${MRAA_SRC_DIR:-/usr/src/app}

doc:
extends: base
environment:
- BUILDDOC=ON
command: bash -c "./scripts/run-cmake.sh && make -Cbuild doc"

sonar-scan:
extends: base
image: mraa-sonar
build:
dockerfile: docker/Dockerfile.sonar
args:
- NODE_VERSION=v5.12.0
environment:
- BUILDSWIG=ON
- BUILDSWIGPYTHON=ON
- BUILDSWIGNODE=ON
- BUILDSWIGJAVA=ON
- ONEWIRE=ON
- JSONPLAT=ON
- SONAR_TOKEN
- SONAR_ORG
- SONAR_PROJ_KEY
Expand All @@ -45,62 +67,58 @@ services:
- TRAVIS_REPO_SLUG
- TRAVIS_PULL_REQUEST_SLUG
- GITHUB_TOKEN

doc:
extends: main
build:
args:
- BUILDDOC=ON
command: bash -c "make doc"
command: bash -c "./scripts/run-cmake.sh && cd build && ./../scripts/sonar-scan.sh"

python2:
extends: main
extends: base
image: mraa-python
build:
args:
- BUILDSWIG=ON
- BUILDSWIGPYTHON=ON
command: bash -c "make _python2-mraa && ctest --output-on-failure"
dockerfile: docker/Dockerfile.python
environment:
- BUILDSWIG=ON
- BUILDSWIGPYTHON=ON
command: bash -c "./scripts/run-cmake.sh && cd build && make _python2-mraa && ctest --output-on-failure"

python3:
extends: python2
build:
args:
- USEPYTHON3TESTS=ON
command: bash -c "make _python3-mraa && ctest --output-on-failure"
environment:
- USEPYTHON3TESTS=ON
command: bash -c "./scripts/run-cmake.sh && cd build && make _python3-mraa && ctest --output-on-failure"

java:
extends: main
extends: base
image: mraa-java
build:
args:
- BUILDSWIG=ON
- BUILDSWIGJAVA=ON
- CC=gcc-4.8
- CXX=g++-4.8
command: bash -c "make mraajava && ctest --output-on-failure"
dockerfile: docker/Dockerfile.java
environment:
- BUILDSWIG=ON
- BUILDSWIGJAVA=ON
command: bash -c "./scripts/run-cmake.sh && cd build && make mraajava && ctest --output-on-failure"

android:
extends: java
image: mraa-android
build:
dockerfile: docker/Dockerfile.android
environment:
- BUILDARCH=PERIPHERALMAN
command: bash -c "./scripts/build-android.sh"

node4:
extends: main
extends: base
image: mraa-node4
build:
dockerfile: docker/Dockerfile.node
args:
- BUILDSWIG=ON
- BUILDSWIGNODE=ON
- NODE_VERSION=v4.4.7
command: bash -c "source /root/.nvm/nvm.sh && make npmpkg && cd .. && node-gyp configure && node-gyp build && npm test"
- NODE_VERSION=v4.4.7
environment:
- BUILDSWIG=ON
- BUILDSWIGNODE=ON
command: bash -c "./scripts/run-cmake.sh && make -Cbuild npmpkg && node-gyp configure && node-gyp build && npm test"

node5:
extends: node4
image: mraa-node5
build:
args:
- NODE_VERSION=v5.12.0

sonar-scan:
extends: main
build:
args:
- BUILDSWIG=ON
- BUILDSWIGPYTHON=ON
- BUILDSWIGNODE=ON
- BUILDSWIGJAVA=ON
- ONEWIRE=ON
- JSONPLAT=ON
command: bash -c "$${MRAA_SRC_DIR}/sonar-scan.sh"
Loading

0 comments on commit 4bedd68

Please sign in to comment.