Skip to content

Commit

Permalink
Add test Dockerfil for x86-64
Browse files Browse the repository at this point in the history
  • Loading branch information
octylFractal committed Jun 23, 2017
1 parent c73b462 commit 78b1dc1
Show file tree
Hide file tree
Showing 8 changed files with 109 additions and 6 deletions.
15 changes: 9 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ language: generic
sudo: required
dist: trusty

services:
- docker

matrix:
fast_finish: true

Expand All @@ -12,7 +15,7 @@ matrix:
sources:
- ubuntu-toolchain-r-test
- sourceline: 'ppa:webupd8team/java'
packages: ['g++-6', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev', 'oracle-java8-installer']
packages: ['g++-6', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev']
env: CCOMPILER='gcc-6' CXXCOMPILER='g++-6'

- os: linux
Expand All @@ -21,7 +24,7 @@ matrix:
sources:
- ubuntu-toolchain-r-test
- sourceline: 'ppa:webupd8team/java'
packages: ['g++-5', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev', 'oracle-java8-installer']
packages: ['g++-5', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev']
env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5'

- os: linux
Expand All @@ -30,7 +33,7 @@ matrix:
sources:
- llvm-toolchain-trusty-3.9
- sourceline: 'ppa:webupd8team/java'
packages: ['clang-3.9', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev', 'oracle-java8-installer']
packages: ['clang-3.9', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev']
env: CCOMPILER='clang-3.9' CXXCOMPILER='clang++-3.9'

- os: linux
Expand All @@ -39,7 +42,7 @@ matrix:
sources:
- llvm-toolchain-trusty-4.0
- sourceline: 'ppa:webupd8team/java'
packages: ['clang-4.0', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev', 'oracle-java8-installer']
packages: ['clang-4.0', 'cmake', 'python3', 'python3-pip', 'python3-setuptools', 'nodejs', 'npm', 'libsfml-dev', 'libprotobuf-dev', 'protobuf-compiler', 'libzmq-dev']
env: CCOMPILER='clang-4.0' CXXCOMPILER='clang++-4.0'

- os: osx
Expand Down Expand Up @@ -77,7 +80,7 @@ install:
- popd
# Build Java Bindings
- pushd jsweep
- ./gradlew assemble
- ./travis/java-run-task.sh assemble
- popd

script:
Expand All @@ -101,5 +104,5 @@ script:
- popd
# Test JSweep bindings against the dummy library
- pushd jsweep
- ./gradlew check
- ./travis/java-run-task.sh check
- popd
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Based upon the manylinux image from pypa
FROM quay.io/pypa/manylinux1_x86_64

COPY docker /opt/sweep/bin
COPY libsweep /opt/sweep/libsweep
COPY jsweep /opt/sweep/jsweep

ENV PATH /opt/sweep/bin:$PATH

RUN install-yum.sh

CMD build.sh
17 changes: 17 additions & 0 deletions docker/build-utils.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function check_var {
if [ -z "$1" ]; then
echo "required variable not defined"
exit 1
fi
}

function check_sha256sum {
local fname=$1
check_var ${fname}
local sha256=$2
check_var ${sha256}

echo "${sha256} ${fname}" > ${fname}.sha256
sha256sum -c ${fname}.sha256
rm -f ${fname}.sha256
}
22 changes: 22 additions & 0 deletions docker/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

set -ex

# set cmake as cmake28
ln -s "$(which cmake28)" /opt/sweep/bin/cmake

gradleTask="$GRADLE_TASK"
if [[ "$gradleTask" == "" ]]; then gradleTask="build"; fi

cd /opt/sweep
pushd libsweep
rm -rf build
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DDUMMY=On
cmake --build .
popd

pushd jsweep
./gradlew "$gradleTask"
popd
Binary file added docker/epel-release-5-4.noarch.rpm
Binary file not shown.
30 changes: 30 additions & 0 deletions docker/install-yum.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

set -ex

EPEL_RPM_HASH=0dcc89f9bf67a2a515bad64569b7a9615edc5e018f676a578d5fd0f17d3c81d4
DEVTOOLS_HASH=a8ebeb4bed624700f727179e6ef771dafe47651131a00a78b342251415646acc

# CentOS 5 is only available through vault.
sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf
sed -i 's/mirrorlist/#mirrorlist/' /etc/yum.repos.d/*.repo
sed -i 's|#\(baseurl.*\)mirror.centos.org/centos/$releasever|\1vault.centos.org/5.11|' /etc/yum.repos.d/*.repo
sed -i 's|#\(baseurl.*\)download.fedoraproject.org/pub|\1archives.fedoraproject.org/pub/archive|' /etc/yum.repos.d/*.repo

MY_DIR=$(dirname "${BASH_SOURCE[0]}")
source "$MY_DIR/build-utils.sh"

# EPEL support
yum -y install wget curl
# curl -sLO https://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
cp "$MY_DIR/epel-release-5-4.noarch.rpm" .
check_sha256sum epel-release-5-4.noarch.rpm $EPEL_RPM_HASH

# Dev toolset (for LLVM and other projects requiring C++11 support)
curl -sLO http://people.centos.org/tru/devtools-2/devtools-2.repo
check_sha256sum devtools-2.repo $DEVTOOLS_HASH
mv devtools-2.repo /etc/yum.repos.d/devtools-2.repo
rpm -Uvh --replacepkgs epel-release-5*.rpm
rm -f epel-release-5*.rpm

yum install -y java-1.7.0-openjdk java-1.7.0-openjdk-devel
9 changes: 9 additions & 0 deletions travis/java-check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
docker build -t "travis-sweep" .
docker run -e GRADLE_TASK="build" "travis-sweep"
else
pushd jsweep
./gradlew build
popd
fi
10 changes: 10 additions & 0 deletions travis/java-run-task.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
task="$1"
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
docker build -t "travis-sweep" .
docker run -e GRADLE_TASK="$task" "travis-sweep"
else
pushd jsweep
./gradlew "$task"
popd
fi

0 comments on commit 78b1dc1

Please sign in to comment.