aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 6f625b1c75bfecb7669abd7ff195d473cb6898ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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:
  directories:
  - $HOME/.opam

before_cache:
  - rm -rf ~/.opam/log/

env:
  global:
  - NJOBS=2
  - COMPILER="4.07.0"
  - DUNE_VER=".1.2.1"
  - CAMLP5_VER=".7.06"
  - FINDLIB_VER=".1.8.0"
  - LABLGTK="lablgtk.2.18.6 conf-gtksourceview.2"
  - NATIVE_COMP="yes"
  - COQ_DEST="-local"
  - MAIN_TARGET="world"

matrix:
  include:
    - env:
      - TEST_TARGET="lint"
      install: []
      before_script: []
      addons:
      apt:
        sources: []
        packages: []
      script:
        - dev/lint-repository.sh

    - os: osx
      env:
      - TEST_TARGET="test-suite"
      - NATIVE_COMP="no"
      - COQ_DEST="-local"
      - EXTRA_OPAM="ounit"
      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
      - 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

    - if: NOT (type = pull_request)
      os: osx
      osx_image: xcode7.3
      env:
      - TEST_TARGET=""
      - NATIVE_COMP="no"
      - COQ_DEST="-prefix $PWD/_install_ci"
      - EXTRA_CONF="-coqide opt -warn-error yes"
      - EXTRA_OPAM="$LABLGTK"
      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
      - 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
      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

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