Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
deactivate clock_gettime on SunOS, as it does not work for threads.
[simgrid.git] / .travis.yml
index dcc5b7c..4368a85 100644 (file)
@@ -5,42 +5,63 @@
 #   apt-get libns3-dev ns3
 #
 #
+dist: xenial
 language: cpp
 compiler:
    - gcc
-#  - clang # boost 1.48 raises an error on clang:
-#            /usr/include/boost/signals2/detail/auto_buffer.hpp:565:57: error:
-#              reference to non-static member function must be called
-#                        std::uninitialized_fill( buffer_, buffer_ + size, init_value );
-#                                                                    ^~~~
+#  - clang 
+jdk:
+   - openjdk11
 addons:
-  apt: # Get recent versions of the compiler, even on Ubuntu Precise
-      sources:
-      - ubuntu-toolchain-r-test
-      packages:
-      - gcc-4.7
-      - g++-4.7
-#      - clang
-# Install libboost-chrono1.48-dev to get boost 1.48 on Ubuntu Precise. What we really want is libboost-dev libboost-all-dev
-# Still need sudo for update-alternatives
-before_install:
-   - if [ ${TRAVIS_OS_NAME} = 'linux' ] ; then sudo add-apt-repository --yes ppa:kubuntu-ppa/backports ; fi # cmake higher than 2.8.7
-   - if [ ${TRAVIS_OS_NAME} = 'linux' ] ; then sudo apt-get update  -qq ; fi
-   - if [ ${TRAVIS_OS_NAME} = 'linux' ] ; then sudo apt-get install -y cmake valgrind default-jdk gfortran liblua5.1-dev lua5.1 libboost-chrono1.48-dev ; fi
-   - if [ ${TRAVIS_OS_NAME} = 'linux' ] ; then sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50 ; fi
-   - if [ ${TRAVIS_OS_NAME} = 'linux' ] ; then sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 50 ; fi
+  apt:
+    update: true
+    allow_unauthenticated: yes
+    packages:
+    - cmake
+    - valgrind
+    - gfortran
+    - libboost-dev
+    - libboost-all-dev
+    - libdw-dev
+    - libevent-dev
+    - libunwind8-dev
+#    - pybind11-dev # Not available in Xenial
+  homebrew:
+    packages:
+    - python
+  coverity_scan:
+    project:
+      name: "simgrid/simgrid"
+      description: "Build submitted via Travis CI"
+    notification_email: martin.quinson@ens-rennes.fr
+    build_command_prepend: "cmake -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=OFF -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=OFF ."
+    build_command:   "make VERBOSE=1"
+    branch_pattern: coverity
+
+# Don't install lua from Debian as we need 5.3 and don't have a backport.
+#   Installing lua from the source does not make any dynamic library.
+#   - curl http://www.lua.org/ftp/lua-5.3.1.tar.gz | tar xz
+#   - cd lua-5.3.1 
+#   -   if [ ${TRAVIS_OS_NAME} = 'linux' ] ; then make linux ; else make macosx ; fi
+#   -   make INSTALL_TOP=$TRAVIS_BUILD_DIR/LuaInstall install
+#   - cd ..
+#   - ls -lR $TRAVIS_BUILD_DIR/LuaInstall
+
 script:
-   - cmake -Denable_documentation=OFF -Denable_coverage=OFF -Denable_java=ON -Denable_model-checking=OFF -Denable_lua=ON -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=ON . && make VERBOSE=1 && ctest --output-on-failure --timeout 100
-branches:
-  only:
-     - master
+   - if [[ "$TRAVIS_OS_NAME" == "osx"   ]]; then cmake -Denable_model-checking=OFF -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=ON -Denable_lua=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=ON .; fi
+   - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cmake -Denable_model-checking=ON  -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=ON -Denable_lua=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=ON -Denable_compile_warnings=ON . || (echo XXX CMakeOutput.log; cat /home/travis/build/simgrid/simgrid/CMakeFiles/CMakeOutput.log; echo XXX CMakeError.log;cat /home/travis/build/simgrid/simgrid/CMakeFiles/CMakeError.log; exit 1) ; fi
+   # run make and ctest in the sonar wrapper on master/linux; run it directly in PR or OSX
+   # - if [[ -e Makefile ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "${TRAVIS_PULL_REQUEST}" == "false" ]]; then ./tools/internal/travis-sonarqube.sh make -j2 VERBOSE=1; else make -j2 VERBOSE=1 && ctest -j2 --output-on-failure ; fi
+   - make -j2 VERBOSE=1 all tests && ctest -j2 --output-on-failure
 notifications:
   recipients:
-    - martin.quinson@loria.fr
+    - martin.quinson@ens-rennes.fr
   email:
     on_success: change
     on_failure: always
   irc:
+    on_success: change
+    on_failure: always
     channels:
       - "irc.debian.org#simgrid"
   template: