dist: trusty # Travis builds are slower using sudo: false (the container-based # infrastructure) as of March 2017; see # https://github.com/coq/coq/pull/467 for some discussion. sudo: required # Until Ocaml becomes a language, we set a known one. language: c cache: apt: true directories: - $HOME/.opam before_cache: - rm -rf ~/.opam/log/ addons: apt: sources: - avsm ## Due to issues like ## https://github.com/travis-ci/travis-ci/issues/8507 , ## https://github.com/travis-ci/travis-ci/issues/9000 , ## https://github.com/travis-ci/travis-ci/issues/9081 , and ## https://github.com/travis-ci/travis-ci/issues/9126 , we get frequent ## failures with using `packages`. Therefore, for most targets, we ## instead invoke `apt-get update` manually with `travis_retry` before ## invoking `apt-get install`, manually, below in the `install:` ## target. # packages: # - opam # - aspcud # - gcc-multilib env: global: - NJOBS=2 # system is == 4.02.3 - COMPILER="system" - COMPILER_BE="4.07.0" - DUNE_VER=".1.0.0" - CAMLP5_VER=".6.14" - CAMLP5_VER_BE=".7.06" - FINDLIB_VER=".1.4.1" - FINDLIB_VER_BE=".1.8.0" - LABLGTK="lablgtk.2.18.3 conf-gtksourceview.2" - LABLGTK_BE="lablgtk.2.18.6 conf-gtksourceview.2" - NATIVE_COMP="yes" - COQ_DEST="-local" - MAIN_TARGET="world" matrix: include: - if: NOT (type = pull_request) env: - TEST_TARGET="test-suite" COMPILER="4.02.3+32bit" EXTRA_OPAM="ounit" - if: NOT (type = pull_request) env: - TEST_TARGET="validate" TW="travis_wait" - if: NOT (type = pull_request) env: - TEST_TARGET="validate" COMPILER="4.02.3+32bit" TW="travis_wait" - if: NOT (type = pull_request) env: - TEST_TARGET="validate" COMPILER="${COMPILER_BE}+flambda" CAMLP5_VER="${CAMLP5_VER_BE}" NATIVE_COMP="no" EXTRA_CONF="-flambda-opts -O3" FINDLIB_VER="${FINDLIB_VER_BE}" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-coq-dpdgraph" EXTRA_OPAM="ocamlgraph" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-coquelicot" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-equations" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-flocq" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-hott" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-ltac2" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-mtac2" - if: NOT (type = pull_request) env: - TEST_TARGET="ci-pidetop" - env: - TEST_TARGET="lint" install: [] before_script: [] addons: apt: sources: [] packages: [] script: - dev/lint-repository.sh # Full Coq test-suite with two compilers - if: NOT (type = pull_request) env: - TEST_TARGET="test-suite" - EXTRA_CONF="-coqide opt -with-doc yes" - EXTRA_OPAM="${LABLGTK} ounit" before_install: &sphinx-install - sudo pip3 install bs4 sphinx sphinx_rtd_theme pexpect antlr4-python3-runtime sphinxcontrib-bibtex addons: apt: sources: - avsm packages: &extra-packages - opam - aspcud - libgtk2.0-dev - libgtksourceview2.0-dev - texlive-latex-base - texlive-latex-recommended - texlive-latex-extra - texlive-math-extra - texlive-fonts-recommended - texlive-fonts-extra - latex-xcolor - ghostscript - tipa - python3 - python3-pip - python3-setuptools - if: NOT (type = pull_request) env: - TEST_TARGET="test-suite" - COMPILER="${COMPILER_BE}" - FINDLIB_VER="${FINDLIB_VER_BE}" - CAMLP5_VER="${CAMLP5_VER_BE}" - EXTRA_CONF="-coqide opt -with-doc yes" - EXTRA_OPAM="${LABLGTK_BE} ounit" before_install: *sphinx-install addons: apt: sources: - avsm packages: *extra-packages # Full test-suite with flambda - if: NOT (type = pull_request) env: - TEST_TARGET="test-suite" - COMPILER="${COMPILER_BE}+flambda" - FINDLIB_VER="${FINDLIB_VER_BE}" - CAMLP5_VER="${CAMLP5_VER_BE}" - NATIVE_COMP="no" - EXTRA_CONF="-coqide opt -with-doc yes -flambda-opts -O3" - EXTRA_OPAM="${LABLGTK_BE} ounit" before_install: *sphinx-install addons: apt: sources: - avsm packages: *extra-packages - os: osx env: - TEST_TARGET="test-suite" - COMPILER="${COMPILER_BE}" - FINDLIB_VER="${FINDLIB_VER_BE}" - CAMLP5_VER="${CAMLP5_VER_BE}" - NATIVE_COMP="no" - COQ_DEST="-local" - EXTRA_OPAM="ounit" before_install: - brew update - brew unlink python - brew install opam gnu-time - if: NOT (type = pull_request) os: osx osx_image: xcode7.3 env: - TEST_TARGET="" - COMPILER="${COMPILER_BE}" - FINDLIB_VER="${FINDLIB_VER_BE}" - CAMLP5_VER="${CAMLP5_VER_BE}" - NATIVE_COMP="no" - COQ_DEST="-prefix ${PWD}/_install" - EXTRA_CONF="-coqide opt -warn-error yes" - EXTRA_OPAM="${LABLGTK_BE}" before_install: - brew update - brew unlink python - brew install opam gnu-time gtk+ expat gtksourceview gdk-pixbuf - brew unlink python@2 - brew install python3 - pip3 install macpack before_deploy: - dev/build/osx/make-macos-dmg.sh deploy: - provider: bintray user: maximedenes file: .bintray.json key: secure: "gUvXWwWR0gicDqsKOnBfe45taToSFied6gN8tCa5IOtl6E6gFoHoPZ83ZWXQsZP50oMDFS5eji0VQAFGEbOsGrTZaD9Y9Jnu34NND78SWL1tsJ6nHO3aCAoMpB0N3+oRuF6S+9HStU6KXWqgj+GeU4vZ4TOlG01RGctJa6U3vII=" skip_cleanup: true on: all_branches: true before_install: - if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then echo "Tested commit (followed by parent commits):"; git log -1; for commit in `git log -1 --format="%P"`; do echo; git log -1 $commit; done; fi install: - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then travis_retry ./dev/tools/sudo-apt-get-update.sh -q; fi - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then sudo apt-get install -y opam aspcud gcc-multilib --allow-unauthenticated; fi - opam init -j ${NJOBS} --compiler=${COMPILER} -n -y - opam switch "$COMPILER" && opam update - eval $(opam config env) - opam config list - opam install -j ${NJOBS} -y num ocamlfind${FINDLIB_VER} dune${DUNE_VER} camlp5${CAMLP5_VER} ${EXTRA_OPAM} - opam list script: - set -e - echo 'Testing make clean...' && echo -en 'travis_fold:start:coq.clean\\r' - make clean # ensure that `make clean` works on a fresh clone - echo -en 'travis_fold:end:coq.clean\\r' - echo 'Configuring Coq...' && echo -en 'travis_fold:start:coq.config\\r' - ./configure ${COQ_DEST} -warn-error yes -native-compiler ${NATIVE_COMP} ${EXTRA_CONF} - echo -en 'travis_fold:end:coq.config\\r' - echo 'Building Coq...' && echo -en 'travis_fold:start:coq.build\\r' - make -j ${NJOBS} ${MAIN_TARGET} - echo -en 'travis_fold:end:coq.build\\r' - echo 'Running tests...' && echo -en 'travis_fold:start:coq.test\\r' - if [ -n "${TEST_TARGET}" ]; then ${TW} make -j ${NJOBS} ${TEST_TARGET}; fi - echo -en 'travis_fold:end:coq.test\\r' - set +e # Testing Gitter webhook notifications: webhooks: urls: - https://webhooks.gitter.im/e/3cdabdec318214c7cd63 on_success: change # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always on_start: never # options: [always|never|change] default: always