aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml24
-rw-r--r--scripts/Dockerfile.329
-rw-r--r--scripts/Dockerfile.32.ubuntu5
-rw-r--r--scripts/Dockerfile.649
-rw-r--r--scripts/Dockerfile.64.ubuntu5
-rwxr-xr-xscripts/build-docker-otp15
-rwxr-xr-xscripts/build-otp6
-rwxr-xr-xscripts/run-smoke-tests23
8 files changed, 82 insertions, 14 deletions
diff --git a/.travis.yml b/.travis.yml
index baa55b383d..dfa01a89e6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,10 @@
-language: erlang
-
-otp_release:
- - 18.0
+language: c
sudo: false
+os:
+ - linux
+
addons:
apt:
packages:
@@ -20,17 +20,27 @@ addons:
- g++
- xsltproc
+matrix:
+ include:
+ - env: Linux32
+ os: linux
+ services:
+ - docker
+ script:
+ - ./scripts/build-docker-otp 32 sh -c "scripts/build-otp && ./otp_build tests && scripts/run-smoke-tests"
+ after_success:
+ after_script:
+
before_script:
- set -e
- export ERL_TOP=$PWD
- export PATH=$ERL_TOP/bin:$PATH
- export ERL_LIBS=''
- - export MAKEFLAGS=-j6
- - kerl_deactivate
+ - export MAKEFLAGS=-j4
script:
- ./scripts/build-otp
-
+
after_success:
- $ERL_TOP/bin/dialyzer --build_plt --apps asn1 compiler crypto dialyzer edoc erts et hipe inets kernel mnesia observer public_key runtime_tools snmp ssh ssl stdlib syntax_tools wx xmerl --statistics
- $ERL_TOP/bin/dialyzer -n -Wunknown -Wunmatched_returns --apps compiler erts kernel stdlib asn1 crypto dialyzer hipe parsetools public_key runtime_tools sasl tools --statistics
diff --git a/scripts/Dockerfile.32 b/scripts/Dockerfile.32
new file mode 100644
index 0000000000..23a360a58e
--- /dev/null
+++ b/scripts/Dockerfile.32
@@ -0,0 +1,9 @@
+FROM erlang/ubuntu-build:32bit
+
+ADD ./otp.tar.gz /buildroot/
+
+WORKDIR /buildroot/otp/
+
+ENV MAKEFLAGS -j4
+
+CMD ./scripts/build-otp
diff --git a/scripts/Dockerfile.32.ubuntu b/scripts/Dockerfile.32.ubuntu
new file mode 100644
index 0000000000..c334f74379
--- /dev/null
+++ b/scripts/Dockerfile.32.ubuntu
@@ -0,0 +1,5 @@
+FROM 32bit/ubuntu:16.04
+
+RUN apt-get update
+
+RUN apt-get --fix-missing -y install build-essential m4 libncurses5-dev libssh-dev unixodbc-dev libgmp3-dev fop xsltproc default-jdk git autoconf libwxbase3.0-dev libwxgtk3.0-dev
diff --git a/scripts/Dockerfile.64 b/scripts/Dockerfile.64
new file mode 100644
index 0000000000..199067e5fe
--- /dev/null
+++ b/scripts/Dockerfile.64
@@ -0,0 +1,9 @@
+FROM erlang/ubuntu-build:64bit
+
+ADD ./otp.tar.gz /buildroot/
+
+WORKDIR /buildroot/otp/
+
+ENV MAKEFLAGS -j4
+
+CMD ./scripts/build-otp
diff --git a/scripts/Dockerfile.64.ubuntu b/scripts/Dockerfile.64.ubuntu
new file mode 100644
index 0000000000..514fea70b5
--- /dev/null
+++ b/scripts/Dockerfile.64.ubuntu
@@ -0,0 +1,5 @@
+FROM ubuntu:16.04
+
+RUN apt-get update
+
+RUN apt-get --fix-missing -y install build-essential m4 libncurses5-dev libssh-dev unixodbc-dev libgmp3-dev fop xsltproc default-jdk git autoconf libwxbase3.0-dev libwxgtk3.0-dev
diff --git a/scripts/build-docker-otp b/scripts/build-docker-otp
new file mode 100755
index 0000000000..01bb0b628e
--- /dev/null
+++ b/scripts/build-docker-otp
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if [ $# -lt 1 ]; then
+ echo "Usage $0 32|64 [command] [arg]..."
+ exit 1
+fi
+
+ARCH="$1"
+shift
+
+git archive --format=tar.gz --prefix=otp/ HEAD >scripts/otp.tar.gz
+
+docker build -t otp --file scripts/Dockerfile.$ARCH scripts
+rm scripts/otp.tar.gz
+docker run --volume="$PWD/logs:/buildroot/otp/logs" -i --rm otp ${1+"$@"}
diff --git a/scripts/build-otp b/scripts/build-otp
index da09fb8045..92031c79c8 100755
--- a/scripts/build-otp
+++ b/scripts/build-otp
@@ -14,7 +14,7 @@ function progress {
}
function do_and_log {
- log="scripts/latest-log.$$"
+ log="logs/latest-log.$$"
echo "" >$log
echo -n "$1..."
(progress $log) &
@@ -32,6 +32,10 @@ function do_and_log {
fi
}
+if [ ! -d "logs" ]; then
+ mkdir logs
+fi
+
do_and_log "Autoconfing" autoconf
do_and_log "Configuring" configure
do_and_log "Building OTP" boot -a
diff --git a/scripts/run-smoke-tests b/scripts/run-smoke-tests
index c2333e7825..5a850c7107 100755
--- a/scripts/run-smoke-tests
+++ b/scripts/run-smoke-tests
@@ -1,10 +1,21 @@
#!/bin/bash
set -ev
-cd $ERL_TOP/release/tests/test_server
-$ERL_TOP/bin/erl -s ts install -s ts smoke_test batch -s init stop
-
-if grep -q '=failed *[1-9]' ct_run.test_server@*/*/run.*/suite.log; then
- echo "One or more tests failed."
- exit 1
+if [ -z "$ERL_TOP" ]; then
+ ERL_TOP=$(pwd)
fi
+
+function run_smoke_tests {
+ cd $ERL_TOP/release/tests/test_server
+ $ERL_TOP/bin/erl -s ts install -s ts smoke_test batch -s init stop
+
+ if grep -q '=failed *[1-9]' ct_run.test_server@*/*/run.*/suite.log; then
+ echo "One or more tests failed."
+ exit 1
+ fi
+ rm -rf ct_run.test_server@*
+}
+
+run_smoke_tests
+ERL_FLAGS="-smp disable" run_smoke_tests
+