Skip to content

Commit b84d0bf

Browse files
Ondřej Surýrkrejci
authored andcommitted
Cache the build cmocka library (reduce build time, reduce load on cmocka upstream)
1 parent e7900b8 commit b84d0bf

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

.travis.yml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
language: c
2+
env:
3+
global:
4+
- CMOCKA_VERSION: 1.1.5
5+
6+
cache:
7+
directories:
8+
- cmocka
29

310
matrix:
411
include:
@@ -60,10 +67,12 @@ addons:
6067
update: true
6168

6269
before_install:
63-
- git clone git://git.cryptomilk.org/projects/cmocka.git
64-
- cd cmocka && mkdir build && cd build
65-
- cmake .. && make -j2 && sudo make install
66-
- cd ../..
70+
- OLD_CMOCKA_VERSION=$(sed -n 's/project(cmocka VERSION \([0-9.]*\) LANGUAGES C)/\1/p' cmocka/CMakeLists.txt)
71+
- if [ -f "cmocka/CMakeLists.txt" ] && [ "$OLD_CMOCKA_VERSION" != "$CMOCKA_VERSION" ]; then echo "Purging the cmocka-$OLD_CMOCKA_VERSION from cache"; rm -rf cmocka; fi
72+
- if [ ! -d "cmocka" ] || [ ! -f "cmocka/CMakeLists.txt" ]; then echo "Downloading cmocka-$CMOCKA_VERSION"; rm -rf cmocka && curl -SLO https://cmocka.org/files/1.1/cmocka-$CMOCKA_VERSION.tar.xz && tar -xJf cmocka-$CMOCKA_VERSION.tar.xz && mv "cmocka-$CMOCKA_VERSION" cmocka; fi
73+
- if [ ! -d "cmocka/build" ] || [ ! -f "cmocka/build/Makefile" ]; then mkdir -p cmocka/build && (cd cmocka/build && cmake ..); fi
74+
- if [ "$TRAVIS_OS_NAME" = "osx" ] && [ ! -f "cmocka/build/src/libcmocka.dylib" ]; then (cd cmocka/build && make -j2); fi
75+
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ ! -f "cmocka/build/src/libcmocka.so" ]; then (cd cmocka/build && make -j2); fi
6776
- if [ "$DEPLOY_BUILD" = "TRUE" ]; then pip3 install --user codecov==2.0.22; export CFLAGS="-coverage"; fi
6877

6978
script:

0 commit comments

Comments
 (0)