forked from vermaseren/form
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
166 lines (155 loc) · 4.9 KB
/
.travis.yml
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
dist: trusty
sudo: false
language: cpp
git:
depth: 10000
env:
global:
MAKEFLAGS='-j 4'
addons:
apt:
packages:
- libgmp-dev
- zlib1g-dev
before_install:
- |
type gcc-7 >/dev/null 2>&1 && type g++-7 >/dev/null && {
export CC=gcc-7
export CXX=g++-7
} || :
install:
- ./scripts/travis-install.sh
script:
- ./scripts/travis-script.sh
after_success:
- ./scripts/travis-after_success.sh
after_script:
- sleep 2 # avoids the bug of travis-ci/travis-ci#6018
# NOTE:
# - Travis CI doesn't support 32-bit environments (travis-ci/travis-ci#5770).
# For testing 32-bit builds, we use a 32-bit Docker image.
# - Builds with sanitizers require recent versions of compilers.
# - openmpi + gcov on precise occasionally crashes. We measure the code
# coverage of parform with mpich.
# - The following combinations give many false positives on the valgrind check:
# - openmpi-bin + valgrind on precise, trusty,
# - mpich-3.2 + valgrind-3.12.0 on xcode7.3.
# The Valgrind-suppression file in openmpi is almost useless.
# The APT whitelist request for mpich seems to be continuously ignored,
# travis-ci/apt-package-whitelist#406, so on linux we need to build/brew it.
# - It is best to cache ./mpich or ./texlive when adequate.
matrix:
include:
- os: linux
compiler: gcc
env: CI_TARGET=form
- os: linux
compiler: gcc
env: CI_TARGET=tform
- os: linux
compiler: gcc
env: CI_TARGET=parform
addons: { apt: { packages: [ libgmp-dev, libopenmpi-dev, openmpi-bin, zlib1g-dev ] } }
sudo: required
- os: linux
compiler: gcc
env: CI_TARGET=form-i386
addons: { apt: { packages: [] } }
sudo: required
services: [ docker ]
- os: linux
compiler: gcc
env: CI_TARGET=tform-i386
addons: { apt: { packages: [] } }
sudo: required
services: [ docker ]
- os: linux
compiler: gcc
env: CI_TARGET=sanitize-vorm
addons: { apt: { sources: [ ubuntu-toolchain-r-test ], packages: [ g++-7, libgmp-dev, zlib1g-dev ] } }
sudo: required
- os: linux
compiler: gcc
env: CI_TARGET=sanitize-tvorm
addons: { apt: { sources: [ ubuntu-toolchain-r-test ], packages: [ g++-7, libgmp-dev, zlib1g-dev ] } }
sudo: required
- os: linux
compiler: gcc
env: CI_TARGET=coverage-vorm
- os: linux
compiler: gcc
env: CI_TARGET=coverage-tvorm
- os: linux
compiler: gcc
env: CI_TARGET=coverage-parvorm
cache: { directories: [ mpich ] }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-vorm TEST=examples.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-vorm TEST=features.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-vorm TEST=fixes.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-tvorm TEST=examples.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-tvorm TEST=features.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-tvorm TEST=fixes.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-parvorm TEST=examples.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
cache: { directories: [ mpich ] }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-parvorm TEST=features.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
cache: { directories: [ mpich ] }
- os: linux
compiler: gcc
env: CI_TARGET=valgrind-parvorm TEST=fixes.frm
addons: { apt: { packages: [ libgmp-dev, valgrind, zlib1g-dev ] } }
cache: { directories: [ mpich ] }
- os: linux
env: CI_TARGET=src-release
- os: linux
env: CI_TARGET=doc-pdf-release
addons: { apt: { packages: [] } }
cache: { directories: [ texlive ] }
- os: linux
env: CI_TARGET=doc-html-release
addons: { apt: { packages: [ ghostscript, netpbm ] } }
cache: { directories: [ texlive ] }
- os: linux
compiler: gcc
env: CI_TARGET=bin-release
- os: osx
compiler: clang
env: CI_TARGET=bin-release
# NOTE: $GITHUB_TOKEN is given as an encrypted environment variable.
deploy:
provider: releases
api_key: "$GITHUB_TOKEN"
file_glob: true
file:
- "form-*.tar.gz"
- "form-*.pdf"
skip_cleanup: true
overwrite: true
on:
tags: true
condition: "( $TRAVIS_SECURE_ENV_VARS == true ) && ( $CI_TARGET == *release )"
notifications:
email: false