diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2016-12-18 15:54:05 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2017-01-19 13:15:13 +0100 |
| commit | e2ee995cefd255ca6ab0c36027e405a4696260dd (patch) | |
| tree | c95c26e888eff2ab89ff8cf8e81e8257c79068c7 /.travis.yml | |
| parent | 3e564829151f9fbbae7af052a8099ef50f2db3a7 (diff) | |
| download | PROJ-e2ee995cefd255ca6ab0c36027e405a4696260dd.tar.gz PROJ-e2ee995cefd255ca6ab0c36027e405a4696260dd.zip | |
.travis.yml: add multi config setup
Setup 4 configs: Linux/GCC, Linux/CLang, OSX CLang and mingw32
OSX allowed to fail, since it fails in the proj -VC step.
Diffstat (limited to '.travis.yml')
| -rw-r--r-- | .travis.yml | 153 |
1 files changed, 38 insertions, 115 deletions
diff --git a/.travis.yml b/.travis.yml index a4378d9a..31ab75d0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,132 +1,55 @@ # This is the config file for building proj.4 and running its test suite # with Travis-ci.org -language: c - -services: - docker - -compiler: - - gcc -# - clang - -os: - - linux -# - osx +cache: + directories: + - $HOME/.ccache matrix: - exclude: + fast_finish: true + include: + - os: linux + compiler: gcc + language: c + sudo: required + services: + - docker + env: + - BUILD_NAME=linux_gcc + - DETAILS="linux, gcc" + - os: linux + compiler: clang + language: c + sudo: required + services: + - docker + env: + - BUILD_NAME=linux_clang + - DETAILS="linux, clang" - os: osx + language: c + env: + - BUILD_NAME=osx + - DETAILS="osx" + - os: linux compiler: gcc + language: c + sudo: required + env: + - BUILD_NAME=mingw32 + - DETAILS="mingw32" -before_install: ./travis/before_install.sh - -install: -# prepare build files - - ./autogen.sh -# cmake build - - mkdir build_cmake - - cd build_cmake - - cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/proj_cmake_install - - make -j3 - - make install - - find /tmp/proj_cmake_install - - cd .. -# autoconf build - - mkdir build_autoconf - - cd build_autoconf - - ../configure --prefix=/tmp/proj_autoconf_install - - make -j3 - - make install - - make dist-all - - find /tmp/proj_autoconf_install - - make check -# Check consistency of generated tarball - - TAR_FILENAME=`ls *.tar.gz` - - TAR_DIRECTORY=`basename $TAR_FILENAME .tar.gz` - - tar xvzf $TAR_FILENAME - - cd $TAR_DIRECTORY - - ./configure --prefix=/tmp/proj_autoconf_install_from_dist_all - - make -j3 - - make install - - make dist-all - - make check - - CURRENT_PWD=`pwd` - - cd /tmp/proj_autoconf_install - - find | sort > /tmp/list_proj_autoconf_install.txt - - cd /tmp/proj_autoconf_install_from_dist_all - - find | sort > /tmp/list_proj_autoconf_install_from_dist_all.txt - - cd $CURRENT_PWD -# The list of file is not identical. See http://lists.maptools.org/pipermail/proj/2015-September/007231.html -# - diff -u /tmp/list_proj_autoconf_install.txt /tmp/list_proj_autoconf_install_from_dist_all.txt - - cd .. -# - - cd .. -# Now with grids - - wget http://download.osgeo.org/proj/proj-datumgrid-1.5.zip - - cd nad - - unzip -o ../proj-datumgrid-1.5.zip - - cd .. -# cmake build with grids - - mkdir build_cmake_nad - - cd build_cmake_nad - - cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/proj_cmake_install_nad - - make -j3 - - make install - - find /tmp/proj_cmake_install_nad - - cd .. -# autoconf build with grids - - mkdir build_autoconf_nad - - cd build_autoconf_nad - - ../configure --prefix=/tmp/proj_autoconf_install_nad - - make -j3 - - make install - - find /tmp/proj_autoconf_install_nad - - make check - - cd src - - make multistresstest - - make test228 - - cd .. - - PROJ_LIB=../nad src/multistresstest - - cd .. -# autoconf build with grids and coverage - - if [ $TRAVIS_OS_NAME == "osx" ]; then - CFLAGS="-DPJ_SELFTEST --coverage" ./configure; - else - CFLAGS="-DPJ_SELFTEST --coverage" LDFLAGS="-lgcov" ./configure; - fi - - make -j3 - - make check - - ./src/proj -VC - -# install & run the working GIGS test - # create locations that pyproj understands - - python3 --version - - ln -s src include - - ln -s src/.libs lib - - mkdir share - - ln -s nad share/proj - - pwd - # install pyproj - - PROJ_DIR=`pwd` pip3 install -v --user pyproj +# allow_failures: +# - os: osx - - cd test/gigs - # run test_json.py - - PROJ_LIB=../../nad python3 test_json.py --test conversion 5101.1-jhs.json 5101.4-jhs-etmerc.json 5105.2.json 5106.json 5108.json 5110.json 5111.1.json - - PROJ_LIB=../../nad python3 test_json.py 5101.2-jhs.json 5101.3-jhs.json 5102.1.json 5103.1.json 5103.2.json 5103.3.json 5107.json 5109.json 5112.json 5113.json 5201.json 5208.json - - cd ../.. +before_install: ./travis/${BUILD_NAME}/before_install.sh - - mv src/.libs/*.gc* src +install: ./travis/${BUILD_NAME}/install.sh script: - echo "done" -after_success: -# coveralls falsely reports .c-files in the build directories as having 100% coverage so we exclude them - - coveralls --extension .c --exclude build_autoconf --exclude build_cmake - - echo "$TRAVIS_SECURE_ENV_VARS" - - sh -c "./travis/build_docs.sh" - - sh -c 'if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "master"; then echo "publish website"; ./travis/add_deploy_key.sh; ./travis/deploy_website.sh $TRAVIS_BUILD_DIR/docs/build /tmp; fi' +after_success: ./travis/${BUILD_NAME}/after_success.sh notifications: #email: |
