Skip to content

Commit

Permalink
use Docker in travis CI build
Browse files Browse the repository at this point in the history
  • Loading branch information
cantbewong committed Aug 16, 2016
1 parent fdf28b1 commit da324bb
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 62 deletions.
64 changes: 15 additions & 49 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,53 +1,19 @@
language: c++
sudo: required

script:
- make svn
- make boost
- make boto
- make glog
- make protobuf PBUF_VER=2.5.0
- make protobuf PBUF_VER=2.6.1
- make picojson
- make mesos-0.23.1 PBUF_VER=2.5.0
- make mesos-0.24.2 PBUF_VER=2.5.0
- make mesos-0.25.1 PBUF_VER=2.5.0
- make mesos-0.26.1 PBUF_VER=2.5.0
- make mesos-0.27.2 PBUF_VER=2.5.0
- make mesos-0.28.2 PBUF_VER=2.5.0
- make mesos-1.0.0 PBUF_VER=2.6.1
- make autoconf
- make isolator-0.23.1 PBUF_VER=2.5.0
- make isolator-0.24.2 PBUF_VER=2.5.0
- make isolator-0.25.1 PBUF_VER=2.5.0
- make isolator-0.26.1 PBUF_VER=2.5.0
- make isolator-0.27.2 PBUF_VER=2.5.0
- make isolator-0.28.2 PBUF_VER=2.5.0
- make isolator-1.0.0 PBUF_VER=2.6.1
- make bintray
language: python

env:
- VER=1.0.0

addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gdb
- g++-4.8
- libapr1-dev
- python-protobuf
- libaprutil1-dev
- libcurl4-nss-dev
- p7zip-full
services:
- docker

cache:
directories:
- /tmp/mesos-ubuntu-12.04-deps/.7zs
before_install:
- docker pull cantbewong/mesos-build-module-dev:1.0.0

deploy:
- provider: bintray
file: bintray-unstable-filtered.json
user: $BINTRAY_USER
key: $BINTRAY_KEY
skip_cleanup: true
on:
all_branches: true
condition: $TRAVIS_TAG =~ ^$ && ($TRAVIS_REPO_SLUG = 'emccode/mesos-module-dvdi' || $IGNORE_REPO_SLUG_CONDITION = true) && ($TRAVIS_BRANCH = master || $IGNORE_BRANCH_CONDITION = true)
install:
- docker build -t travis/mesos-build-module-dvdi-dev:1.0.0 -f Dockerfile-mesos-module-dvdi-dev .
- docker run -ti -v $TRAVIS_BUILD_DIR/isolator/:/isolator travis/mesos-build-module-dvdi-dev:1.0.0 /bin/bash -c '/usr/bin/make all && cp /isolator/build/.libs/libmesos_dvdi_isolator-${ISOLATOR_VERSION}.so /isolator/'

script:
- shasum $TRAVIS_BUILD_DIR/isolator/libmesos_dvdi_isolator-${VER}.so
28 changes: 17 additions & 11 deletions Dockerfile-mesos-module-dvdi-dev
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
FROM cantbewong/mesos-build-module-dev:1.0.0
MAINTAINER Steve Wong (EMCCODE)

ENTRYPOINT cd /isolator && \
export ISOLATOR_VERSION=1.0.0 && \
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/lib && \
./bootstrap && \
rm -Rf build && \
mkdir build && \
cd build && \
../configure --with-mesos-root=/mesos --with-mesos-build-dir=/mesos && \
make all
MAINTAINER EMC{code} <http://community.emccode.com>

VOLUME ["/isolator"]

COPY ./docker-isolator-entrypoint.sh /
ENTRYPOINT ["/docker-isolator-entrypoint.sh"]
CMD ["/usr/bin/make", "all"]

# To build Docker image:
# docker build -t <docker-user-name>/mesos-build-module-dvdi-dev:<ver> -f Dockerfile-mesos-module-dvdi-dev .

# default COMMAND simply builds isolator
# use it like this, :
# docker run -ti -v <path-to-git-clone>/mesos-module-dvdi/isolator/:/isolator <docker-user-name>/mesos-build-module-dvdi-dev:<ver>

# to extract the .so to the mounted repo directory - you can over-ride the default like this:
# docker run -ti -v <path-to-git-clone>/mesos-module-dvdi/isolator/:/isolator <docker-user-name>/mesos-build-module-dvdi-dev:<ver> /bin/bash -c '/usr/bin/make all && cp /isolator/build/.libs/libmesos_dvdi_isolator-${ISOLATOR_VERSION}.so /isolator/'
7 changes: 5 additions & 2 deletions Dockerfile-mesos-modules-dev
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM ubuntu:14.04
MAINTAINER Mesosphere <support@mesosphere.io>
MAINTAINER EMC{code} <http://community.emccode.com>

# Install Dependencies

Expand Down Expand Up @@ -80,4 +80,7 @@ RUN cd build && make -j 2 install
RUN easy_install /mesos/build/src/python/dist/mesos.interface-*.egg
#RUN easy_install /mesos/build/src/python/dist/mesos.native-*.egg


# This image builds mesos and retains the resulting header and binaries.
# It is intended to support mesos modle development
# TO build this image:
# docker build -t <docker-user-name>/mesos-build-module-dev:<ver> -f Dockerfile-mesos-modules-dev .
12 changes: 12 additions & 0 deletions docker-isolator-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
set -e

cd /isolator && \
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/lib && \
./bootstrap && \
rm -Rf build && \
mkdir build && \
cd build && \
../configure --with-mesos-root=/mesos --with-mesos-build-dir=/mesos

"$@"

0 comments on commit da324bb

Please sign in to comment.