Skip to content

Commit

Permalink
Testing new travis-ci dockerfiles
Browse files Browse the repository at this point in the history
  • Loading branch information
berkowski committed Jan 20, 2020
1 parent b55bcb6 commit 9d9cf51
Show file tree
Hide file tree
Showing 26 changed files with 579 additions and 51 deletions.
218 changes: 204 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,210 @@
language: cpp
sudo: required
services: docker

env:
- IMAGE=ubuntu IMAGE_TAG=disco
global:
# Docker hub username
- secure: "rc9td900One/QgwPFyr+FXv+W2vX0PVlXJAug0mOBdYRFbjWNGDXWQTNC4X7RDvUMTFhwC3EUjUQVc4vLut54aWYSFyrC5/gOF8/C5PyGhAzIKGAoQlgZj+xXAWbxRbQGkOxjQGpaERU8HDiZxlYYQrVPYVfExfC9xWowpJEs7IFlNhUD0spaX/YqKqHKXpsztqb06hOs3s+Q7Tb7Q3w+ghrASbkKFkJyb1wgFhn+ejmGeg9OEipDcclq12gGnXU73edFgSmqw0z49qhxKa7eScNDQJF1RuQYm6drVs37Qs3S3x7G1TDEvnVhEXAb5brldFVHyLRnL6PGmJZQnqLcl3hRkRiv6mRHI7h+rfWF8QMT0arn7arej5PnKCYRCsyGnT8LGKa5dAj0GDb6ozIftBwdrE/VRvEoFpKYXOU7btrQvuVe2Ct7h0vAIV91UhFtj1QMzkqe19kYCWYoQqITv6rhnsznJc7+5cYybsexsFJssazXZ0m+HxCUECQG0mL8eMumSNUC8idKT2nEGdfi+AEJm2KC101NJu5hysOgtxwWTHl7xv7i+aozxGomMqE/r3v/1Tk4M0X3Nqn/Cn2525m0gMmIOxtmDF0coRUETfcbcCqK1rbWPL9O6sVLsCc/6rTW3sT/q28iSLEufaC2ZoiNcirt6BnFkB3r9e3RnI="
# Docker hub password
- secure: "Mc+Sj4/RerBfn9maE45yIfKOO5Er3RCyOEby6yT5D1ieCnkXPoTrr35tZUj15bZiwSp2UzLxeHF6nRWsuKPSotlqY18niIImNr8hwJ/oDEJNXESSoEo5qX4U1EJsAP+VhWjDUWK49ySqulFvv8vVtjL7/dq1rsDENdWKeOBBTqeXDMN5ei74TsO+F6MFIkgBDYr3PoclnemfdyQPwCsLeXpcNnNrxgRt89tF0HXjKc0H5HaXkT8MPAVkQgRPMj5ZY8Q0AUxa4bVyVUhbQDBLK9Ygr82G4re2UKjHOEOiqLv3Sgr3RLYap1UHrVYJQ7EeLagW9l6KJ9bJBFGS5h79f1dhSq0Ry7ASklzPwM8QWerAhuBvAChEy6ekZQEIl0ptKFKRyvvPfy4YuHi/W2eUh4OXc+DKqVllKq8DznrKAW1eIKU6dvornnVG0CYMChGner9uERmX6PDviYAb7xSLgLNWdnBYyGPIALEAoL5XPiEwyQmJBtD8xdekpDm8Y6NoX0hmWnPjsKVUtYN5dO4UZoP7ePCPxRQDHhiiUHPCd6C+vsXBJYiHwAyoptuOWwCkEHSuVap3Eh61PvNfY8odyCZUg5TRnhY8qrNiEfREYq1j07jgGsL/gdP8m4nWPSrdqPlWKgxS8XdiBRHGpJKqlgyDSYBytgmwwJFcQQ+616k="

matrix:
fast_finish: true
include:

#
#
# MB-System build-dependencies docker image builds. Only on cron
#
#

- os: linux
name: Ubuntu Focal (20.04) Build-Deps Docker Image
if: type = cron
services: docker
env:
- TRAVIS_CONFIG=docker_dep_image
- OS=ubuntu
- OS_TAG=focal
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal


- os: linux
if: type = cron
name: Ubuntu Focal (20.04) GMT 6.0.0 PROJ 6.3 Build-Deps Docker Image
services: docker
env:
- TRAVIS_CONFIG=docker_dep_image
- OS=ubuntu
- OS_TAG=focal
- PROJ_SOURCE_TAG=6.3
- GMT_SOURCE_TAG=6.0.0
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal-proj6.3-gmt6.0.0

- os: linux
if: type = cron
name: Ubuntu Bionic (18.04) Build-Deps Docker Image
services: docker
env:
- TRAVIS_CONFIG=docker_dep_image
- OS=ubuntu
- OS_TAG=bionic
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-bionic

- os: linux
if: type = cron
name: Ubuntu Disco (19.04) Build-Deps Docker Image
services: docker
env:
- TRAVIS_CONFIG=docker_dep_image
- OS=ubuntu
- OS_TAG=disco
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-disco

- os: linux
if: type = cron
name: Ubuntu Xenial (16.04) Build-Deps Docker Image
services: docker
env:
- TRAVIS_CONFIG=docker_dep_image
- OS=ubuntu
- OS_TAG=xenial
- GMT_SOURCE_TAG=6.0.0
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-xenial

- os: linux
if: type = cron
name: CentOS 7 Build-Deps Docker Image
services: docker
env:
- TRAVIS_CONFIG=docker_dep_image
- OS=centos
- OS_TAG=7
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:centos-7
#
#
# MB-System builds and tests on stock distributions
#
#
- os: linux
name: MB-System build on Ubuntu Focal
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=disco
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal

- os: linux
name: MB-System build on Ubuntu Disco
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=disco
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-disco

- os: linux
name: MB-System build on Ubuntu Bionic
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=bionic
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-bionic

- os: linux
name: MB-System build on Ubuntu Xenial
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=xenial
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-xenial

- os: linux
name: MB-System build on CentoOS 7
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=centos
- OS_TAG=7
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:centos-7

- os: osx
name: MB-System build on Mac OSX
env:
- TRAVIS_CONFIG=build_osx
- CFLAGS="-I/opt/X11/include -L/opt/X11/lib"
addons:
homebrew:
packages:
- proj
- gdal
- netcdf
- fftw
- gmt
- openmotif
#
#
# MB-System builds and tests for development configs
#
#
- os: linux
name: MB-System build on Ubuntu Focal w/ PROJ 6.3 and GMT 6.0.0
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=bionic
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal-proj6.3-gmt6.0.0

- os: linux
name: MB-System build on Ubuntu Focal w/ clang
services: docker
compiler: clang
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=bionic
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal

- os: linux
name: MB-System debug build on Ubuntu Focal w/ gsf and trn
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=bionic
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal
- MBSYSTEM_CONFIGURE_ARGS="--enable-mbtrn --enable-mbtnav --enable-gsf --enable-tests"
- CFLAGS="-g -Og"

- os: linux
name: MB-System optimized release build on Ubuntu Focal w/o gsf and trn
services: docker
env:
- TRAVIS_CONFIG=build_linux
- BUILD_CONTAINER_NAME=mbsystem-build
- OS=ubuntu
- OS_TAG=bionic
- DOCKER_IMAGE=zberkowitz/mbsystem-deps:ubuntu-focal
- MBSYSTEM_CONFIGURE_ARGS="--disable-gsf --enable-tests"
- CFLAGS="-g0 -O3 -DNDEBUG"

before_install: ./ci/travis/${TRAVIS_CONFIG}/before_install.sh

before_install:
- export CONTAINER=${IMAGE}-${IMAGE_TAG}
- docker run -d --name $CONTAINER -e LC_ALL="en_US.UTF-8" -e LANG="en_US.UTF-8" -v $(pwd):/travis -w /travis $IMAGE:$IMAGE_TAG tail -f /dev/null
- docker ps
install: ./ci/travis/${TRAVIS_CONFIG}/install.sh

install:
- docker exec -e CC=$CC -e CXX=$CXX -t $CONTAINER bash travis/install-$IMAGE.sh
- docker exec -e CC=$CC -e CXX=$CXX -t $CONTAINER bash travis/install-post.sh
before_script: ./ci/travis/${TRAVIS_CONFIG}/before_script.sh

script:
- docker exec -e CC=$CC -e CXX=$CXX -t $CONTAINER bash travis/script.sh
script: ./ci/travis/${TRAVIS_CONFIG}/script.sh

after_failure:
- if [ -e test/utilities/test-suite.log ]; then cat test/utilities/test-suite.log; fi
after_failure: ./ci/travis/${TRAVIS_CONFIG}/after_failure.sh
54 changes: 54 additions & 0 deletions ci/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Continuous Integration Testing Matrix

## Linux

### Build dependencies docker images

These images are built and pushed to hub.docker.com as monthly cron jobs.

| Name | PROJ | GDAL | GMT |
|--------------------------------------------|------|-------|------|
| mbsystem-deps:ubuntu-focal | 6.2.1| 2.4.3 | 6.0.0|
| mbsystem-deps:ubuntu-focal-proj6.3-gmt6.0.0| 6.3 | 3.0.3 | 6.0.0|
| mbsystem-deps:ubuntu-disco | 5.2.0| 2.4.0 | 5.4.5|
| mbsystem-deps:ubuntu-bionic | 4.9.3| 2.2.3 | 5.4.3|
| mbsystem-deps:ubuntu-xenial | 4.9.2| 1.11.3| 6.0.0|
| mbsystem-deps:centos-7 | 4.8.0| 1.11.4| 5.4.4|
| OSX | 4.8.0| 1.11.4| 5.4.4|


### MB-System build tasks

Distribution Compatabilty builds test MB-System code base against distributions

| Name | Image | Build Trigger | CFLAGS | MBTRN | MBTNAV | GSF |
|-------------------|----------------------------|---------------|--------|:-----:|:------:|:---:|
| Ubuntu Focal | mbsystem-deps:ubuntu-focal | master | | Y | Y | Y |
| Ubuntu Disco | mbsystem-deps:ubuntu-disco | master | | Y | Y | Y |
| Ubuntu Bionic | mbsystem-deps:ubuntu-bionic| master | | Y | Y | Y |
| Ubuntu Xenial | mbsystem-deps:ubuntu-xenial| master | | Y | Y | Y |
| CentOS 7 | mbsystem-deps:centos-7 | master | | Y | Y | Y |


Development builds

| Name | Image | Build Trigger | CFLAGS | MBTRN | MBTNAV | GSF |
|-------------------|---------------------------------------------|---------------|----------------|:-----:|:------:|:---:|
| Latest PROJ/GMT | mbsystem-deps:ubuntu-focal-proj6.3-gmt6.0.0 | master | | Y | Y | Y |
| clang compiler | mbsystem-deps:ubuntu-focal | master | | Y | Y | Y |
| debug build | mbsystem-deps:ubuntu-focal | master | -g -Og | Y | Y | Y |
| release build | mbsystem-deps:ubuntu-focal | master | -g0 -O3 -NDEBUG| N | N | N |

## OSX

OSX build dependencies are installed using homebrew.

- PROJ: 6.2.1
- GDAL: 2.4.2
- GMT: 6.0.0

Distribution Compatabilty builds test MB-System code base against distributions

| Name | OSX Version | XCODE | Build Trigger | CFLAGS | MBTRN | MBTNAV | GSF |
|-------------------|-----------------|----------|---------------|--------------------|:-----:|:------:|:---:|
| OSX | 10.13 (default) | 9.4.1 | master | -I/opt/X11/include | Y | Y | Y |
6 changes: 6 additions & 0 deletions ci/travis/build_linux/after_failure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex

if [ -e test/utilities/test-suite.log ]; then
cat test/utilities/test-suite.log
fi
7 changes: 7 additions & 0 deletions ci/travis/build_linux/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -ex


echo "Starting docker container ${DOCKER_IMAGE}"
docker run -d --name ${BUILD_CONTAINER_NAME} -v ${TRAVIS_BUILD_DIR}:/build -w /build ${DOCKER_IMAGE} tail -f /dev/null
docker ps
18 changes: 18 additions & 0 deletions ci/travis/build_linux/before_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -e

bold=$(tput bold)
endbold=$(tput sgr0)

echo "${bold}Compiler Info:${endbold}"
docker exec -e CC=${CC} -e CXX=${CXX} -t ${BUILD_CONTAINER_NAME} ${CC} -v
docker exec -e CC=${CC} -e CXX=${CXX} -t ${BUILD_CONTAINER_NAME} ${CXX} -v

echo "${bold}PROJ info:${endbold}"
docker exec -e CC=${CC} -e CXX=${CXX} -t ${BUILD_CONTAINER_NAME} proj

echo "${bold}GDAL info:${endbold}"
docker exec -e CC=${CC} -e CXX=${CXX} -t ${BUILD_CONTAINER_NAME} gdal-config --version

echo "${bold}GMT info:${endbold}"
docker exec -e CC=${CC} -e CXX=${CXX} -t ${BUILD_CONTAINER_NAME} gmt-config --version
3 changes: 3 additions & 0 deletions ci/travis/build_linux/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
set -ex
/bin/true
10 changes: 10 additions & 0 deletions ci/travis/build_linux/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex

if [ -z "${MBSYSTEM_CONFIGURE_ARGS}" ]; then
export MBSYSTEM_CONFIGURE_ARGS="--enable-mbtrn --enable-mbtnav"
fi

echo "Building MB-System..."
# DOCKER_IMAGE="zberkowitz/mbsystem-deps:${OS}-${OS_TAG}"
docker exec -e CC="${CC}" -e CXX="${CXX}" -e CFLAGS="${CFLAGS}" -t ${BUILD_CONTAINER_NAME} bash -c "./configure ${MBSYSTEM_CONFIGURE_ARGS} --enable-test && make && make check"
6 changes: 6 additions & 0 deletions ci/travis/build_osx/after_failure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex

if [ -e test/utilities/test-suite.log ]; then
cat test/utilities/test-suite.log
fi
1 change: 1 addition & 0 deletions ci/travis/build_osx/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#!/usr/bin/env bash
18 changes: 18 additions & 0 deletions ci/travis/build_osx/before_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -e

bold=$(tput bold)
endbold=$(tput sgr0)

echo "${bold}Compiler Info:${endbold}"
${CC} -v
${CXX} -v

echo "${bold}PROJ info:${endbold}"
proj

echo "${bold}GDAL info:${endbold}"
gdal-config --version

echo "${bold}GMT info:${endbold}"
gmt-config --version
1 change: 1 addition & 0 deletions ci/travis/build_osx/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#!/usr/bin/env bash
11 changes: 11 additions & 0 deletions ci/travis/build_osx/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -ex

if [ -z "${MBSYSTEM_CONFIGURE_ARGS}" ]; then
export MBSYSTEM_CONFIGURE_ARGS="--enable-mbtrn --enable-mbtnav"
fi

echo "Building MB-System..."
./configure ${MBSYSTEM_CONFIGURE_ARGS} --enable-test --with-proj-include=/usr/local/include --with-proj-lib=/usr/local/lib --with-fftw-include=/usr/local/include --with-fftw-lib=/usr/local/lib --with-motif-include=/usr/local/include --with-motif-lib=/usr/local/lib

make && make check
3 changes: 3 additions & 0 deletions ci/travis/docker_dep_image/after_failure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
set -ex
/bin/true
3 changes: 3 additions & 0 deletions ci/travis/docker_dep_image/before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
set -ex
/bin/true
3 changes: 3 additions & 0 deletions ci/travis/docker_dep_image/before_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
set -ex
/bin/true
3 changes: 3 additions & 0 deletions ci/travis/docker_dep_image/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
set -ex
/bin/true
Loading

0 comments on commit 9d9cf51

Please sign in to comment.