summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml235
1 files changed, 235 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..f20599ed
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,235 @@
+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"
+ - 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}" 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"
+
+ - 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="sphinx test-suite"
+ - EXTRA_CONF="-coqide opt"
+ - EXTRA_OPAM="hevea ${LABLGTK}"
+ 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
+ - python3
+ - python3-pip
+ - python3-setuptools
+
+ - if: NOT (type = pull_request)
+ env:
+ - TEST_TARGET="sphinx test-suite"
+ - COMPILER="${COMPILER_BE}"
+ - FINDLIB_VER="${FINDLIB_VER_BE}"
+ - CAMLP5_VER="${CAMLP5_VER_BE}"
+ - EXTRA_CONF="-coqide opt"
+ - EXTRA_OPAM="hevea ${LABLGTK_BE}"
+ before_install: *sphinx-install
+ addons:
+ apt:
+ sources:
+ - avsm
+ packages: *extra-packages
+
+ # Full test-suite with flambda
+ - if: NOT (type = pull_request)
+ env:
+ - TEST_TARGET="sphinx test-suite"
+ - COMPILER="${COMPILER_BE}+flambda"
+ - FINDLIB_VER="${FINDLIB_VER_BE}"
+ - CAMLP5_VER="${CAMLP5_VER_BE}"
+ - EXTRA_CONF="-coqide opt -flambda-opts -O3"
+ - EXTRA_OPAM="hevea ${LABLGTK_BE}"
+ 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"
+ before_install:
+ - brew update
+ - brew unlink python
+ - brew install gnu-time
+ # only way to continue using OPAM 1.2
+ - brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d156edeeed7291f4bc1e08620b331bbd05d52b78/Formula/opam.rb
+
+ - 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 gnu-time gtk+ expat gtksourceview gdk-pixbuf
+ # only way to continue using OPAM 1.2
+ - brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d156edeeed7291f4bc1e08620b331bbd05d52b78/Formula/opam.rb
+ - 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} camlp5${CAMLP5_VER} ${EXTRA_OPAM}
+- opam list
+
+script:
+
+- set -e
+- 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