forked from fontforge/fontforge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
164 lines (146 loc) · 6.8 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
language: c
compiler: gcc
sudo: false
dist: trusty
osx_image: xcode8
branches:
only:
- master
- travis
- coverity_scan
os:
- linux
- osx
env:
global:
# For Coverity
- secure: "MeTS1Pqa5gzx1nn/peW/9a5kq84bba3XYUljOfkCUqzuyGiERk/nmok+RW7skrgzboBlKxnNG8+ykKqHMwK9s9M83ezFxvEWXBcKEpmEQKkqXPI5hpMs6jGLTgpeuheSIzqHA3danV8iircp1GOiTLWA0pt/AOsNLZiaYBh0OiE="
matrix:
- BUILD_EXTRA_FLAGS="--without-x"
- TRACE_CODE_COVERAGE=true
- OSX_ONLY=true
matrix:
exclude:
- os: osx
env: BUILD_EXTRA_FLAGS="--without-x"
- os: osx
env: TRACE_CODE_COVERAGE=true
- os: linux
env: OSX_ONLY=true
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- deadsnakes
packages: [autoconf, automake, autotools-dev, bzip2, gcc-7, libtool,
libjpeg-dev, libtiff4-dev, libpng12-dev, libfreetype6-dev, libgif-dev,
libx11-dev, libxml2-dev, libpango1.0-dev, libcairo2-dev, python3.6-dev, lcov]
coverity_scan:
project:
name: "fontforge/fontforge"
description: "Free (libre) font editor for Windows, Mac OS X and GNU+Linux"
build_command_prepend: cov-configure --comptype gcc --compiler $CC --template && ./bootstrap --force && ./configure $FFCONFIG
build_command: make -j4
branch_pattern: coverity_scan
notification_email: jtanx_blackhole@outlook.com
cache:
directories:
- $TRAVIS_BUILD_DIR/travisdeps
before_install:
- if [ ! -z "$TRACE_CODE_COVERAGE" ]; then pip --quiet install --user cpp-coveralls==0.3.12 ; fi
#before_install:
# - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update || brew update; fi
install:
- |
set -e
export DEPSPREFIX=$TRAVIS_BUILD_DIR/travisdeps
export PREFIX=$TRAVIS_BUILD_DIR/target
export PATH=$PATH:$DEPSPREFIX/bin:$PREFIX/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DEPSPREFIX/lib:$PREFIX/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$DEPSPREFIX/lib/pkgconfig
export FFCONFIG="--prefix=$PREFIX $BUILD_EXTRA_FLAGS"
if [ ! -z "$TRACE_CODE_COVERAGE" ] ; then
FFCONFIG="$FFCONFIG --enable-code-coverage --enable-debug"
fi
# For some inane reason Travis defines this to '-g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security'
# This prevents pkg-config from setting the CFLAGS properly.
unset PYTHON_CFLAGS
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
export FTVER=`dpkg -s libfreetype6-dev | perl -ne 'print $1 if /^Version: (\d+(?:\.\d+)+)/'`
export SFFTVER=`echo $FTVER | perl -ne 'print $1 if /^(\d+(?:\.\d+){1,2})/'`
export FFCONFIG="$FFCONFIG --with-freetype-source=$DEPSPREFIX/freetype-$FTVER"
export CC=gcc-7
export GCOV=gcov-7
# This block only runs if the cache isn't present.
if [ ! "$(ls -A $DEPSPREFIX)" ]; then
mkdir -p work && pushd work
wget 'https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz' -O - |tar -zxf -
wget 'https://github.com/zeromq/czmq/releases/download/v3.0.2/czmq-3.0.2.tar.gz' -O - |tar -zxf -
wget 'https://github.com/fontforge/libspiro/releases/download/0.5.20150702/libspiro-0.5.20150702.tar.gz' -O - | tar -zxf -
wget 'https://github.com/fontforge/libuninameslist/releases/download/20160701/libuninameslist-20160701.tar.gz' -O - | tar -zxf -
wget 'https://bitbucket.org/sortsmill/libunicodenames/downloads/libunicodenames-1.1.0_beta1.tar.xz' -O - | tar -Jxf -
wget --tries 1 "http://download.savannah.gnu.org/releases/freetype/freetype-$FTVER.tar.gz" || \
wget "https://sourceforge.net/projects/freetype/files/freetype2/$SFFTVER/freetype-$FTVER.tar.gz"
pushd zeromq-4.1.5 && ./configure --prefix=$DEPSPREFIX && make -j4 && make install && popd
pushd czmq-3.0.2 && CFLAGS="-Wno-format-truncation" ./configure --prefix=$DEPSPREFIX && make -j4 && make install && popd
pushd libspiro-0.5.20150702 && ./configure --prefix=$DEPSPREFIX && make -j4 && make install && popd
pushd libuninameslist-20160701 && ./configure --prefix=$DEPSPREFIX && make -j4 && make install && popd
pushd libunicodenames-1.1.0_beta1 && ./configure --prefix=$DEPSPREFIX && make -j4 && make install && popd
tar -zxf freetype-$FTVER.tar.gz -C $DEPSPREFIX
popd
fi
# These are FF-specific mods (set here so it runs also in Coverity)
export PYTHON=python3.6
export PYTHONPATH=$PYTHONPATH:$PREFIX/lib/python$($PYTHON -c "import sys; print('{0}.{1}'.format(sys.version_info.major, sys.version_info.minor))")/site-packages
export CFLAGS="-fdiagnostics-color=always -Wall -Wno-switch"
else
export PATH=/opt/local/bin:$PATH
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/opt/X11/lib/pkgconfig:/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig:$PKG_CONFIG_PATH
export PYTHONPATH=$PYTHONPATH:$PREFIX/lib/python2.7/site-packages
export PYTHON=python
wget https://github.com/macports/macports-base/releases/download/v2.4.1/MacPorts-2.4.1-10.11-ElCapitan.pkg
sudo installer -pkg MacPorts-2.4.1-10.11-ElCapitan.pkg -target /
sudo port selfupdate
PORTDEFS=$(pushd osx >/dev/null && port deps | \
grep '^Build\|^Library' | \
sed -e 's/Build Dependencies://' -e 's/Library Dependencies://' | \
tr , '\n' | \
sed -e 's/^[[:space:]]*//' && \
popd >/dev/null \
)
echo "Installing dependencies: $PORTDEFS"
COLUMNS=80 sudo port install $PORTDEFS 2>&1 | tee /dev/null
sudo port select --set python python27
sudo port select --set python2 python27
fi
#Why.
export LIBSPIRO_CFLAGS=`pkg-config --cflags libspiro` && export LIBSPIRO_LIBS=`pkg-config --libs libspiro`
export LIBUNINAMESLIST_CFLAGS=`pkg-config --cflags libuninameslist` && export LIBUNINAMESLIST_LIBS=`pkg-config --libs libuninameslist`
set +e
script:
- ./bootstrap
- ./configure $FFCONFIG
- make -j4
- make -C contrib/fonttools -j4
- make install
- if [ ! -z "$TRACE_CODE_COVERAGE" ]; then make check ; coveralls --gcov-options '\-bulp' --gcov $(which $GCOV) ; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then make distcheck -j4; fi
- fontforge -version
- $PYTHON -c "import fontforge; import psMat; print(fontforge.__version__, fontforge.version()); fontforge.font();"
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then travis-scripts/ffosxbuild.sh $PREFIX $TRAVIS_COMMIT; fi
after_failure:
- cat config.log
- cat Makefile
- which python
deploy:
provider: bintray
file: "travis-scripts/bintray_descriptor.json"
user: "fontforge-ci-bot"
dry-run: false
key:
secure: "YBvK5QLZ4LNE3WQPXjDYalLsTgmiGyRGYY87ep5knQ0YGyt3Q9OiBCtQ3GvhHNKOa2L2QlctJi2VWcUu+ftrS72mi5j2tvse9wRF3V8EVFIPb3bxjnN6E11FjXtLIqU8WR7HlAHJpOL2bhO+RleIhSVZm0MsiSjekFOoA5tfll4="
on:
condition: $TRAVIS_OS_NAME = osx
branch:
- master
- travis