blob: d5e7dbe865becd003aa4ed3f125ae333fa4cf37b (
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
129
130
131
132
133
|
language: c
compiler:
- gcc
- clang
dist: xenial
env:
matrix:
- WITH_CRYPTO=ossl OPENSSL_BRANCH=OpenSSL_1_0_2-stable
- WITH_CRYPTO=ossl OPENSSL_BRANCH=OpenSSL_1_1_0-stable
- WITH_CRYPTO=gcrypt OPENSSL_BRANCH=OpenSSL_1_0_2-stable
- WITH_TCTI_ASYNC=yes WITH_TCTI_PARTIAL=yes WITH_CRYPTO=ossl OPENSSL_BRANCH=OpenSSL_1_0_2-stable
- WITH_TCTI_ASYNC=yes WITH_TCTI_PARTIAL=no WITH_CRYPTO=ossl OPENSSL_BRANCH=OpenSSL_1_0_2-stable
- WITH_TCTI_ASYNC=no WITH_TCTI_PARTIAL=yes WITH_CRYPTO=ossl OPENSSL_BRANCH=OpenSSL_1_0_2-stable
global:
# COVERITY_SCAN_TOKEN
- secure: "ZD0KxBhO/CaSE/TOkW+H5nsBbaMolbIPv5DgctcjA1BlTckgc5lK4m+7BIR1Fft6gaeeLOoCY3qUm4kW++Bqk2bTsrx/HvrmVmrzMO572jA74x4E+5lynUnRVaAgBg7cVBcB0hZcUurx8FifNBbgnWlxT/nDWttVnglkz400GCE9/zy+VTJWqt4QAB+6qeKPiG3vRthQdWcHstBI8IIAbvp4rhSUajBBQeZ5ro5RPGNy+iHen+t6tyJmbjiP0Y4qjkKGbfwXHnsseEcuSJQuxSkQ9MWK6t93BFXFSPw5MjHIApMn+4CjRp2JMoVTVfe5fFeZEHxVUmAzy+e5eIeftrUtUlCI293UuxZnw/vpJczn3BWunlhhjqjsCwVeknzGHxlaT+ck8Et1Mdl/3nY/E9dt47/NOzXY2xrAz59GYsdKvvsPoCGgNlAub03Vl0W24I1kjppsmN/zFwazHGqoxIBTwrDOQUmZvPfXA3jAUozrfAdT3YjnRcCG7bbQmacFApqfUm/bqMgapAgozjjxpuBrO1wQSUjjH6NANZsP2Gpk0eAl7FOlBzbVgKPxCQozWCjpKOj3HMnXX458ZQWsboG5J00wwjw9DRNRCkeexLdi832L/BPhUY5JgRlTqqyKr9cr69DvogBF/pLytpSCciF6t9NqqGZYbBomXJLaG84="
# COVERALLS_REPO_TOKEN
- secure: "OgC0wl8yIwZP1ppx7QgZrLvGbs/p8CutRWuHmutuuyta+InR73VsSL7E5vwGG9W8WJAcTu6nwQlkv2d8tx8l+DQXYXWYALH3m1KtlIV2QpP7ZPjsNYhh6tP/1ZUKh3MumsDU+H2BjfqV5910BSWa0DBcONT8CAAxXfTvvTaAPzIBf0Z7byy1dSV7oHKfVPPQMOxXwMSTAItOiMIhRk+20C0YQRxFqkXQ72h14B7/2eu3GXjiu+8ovdPPFWCajcg0sueIkNkBTUOc+PUeQ3r/uNCURwSUTFNOgvV/1jVOFx0ZfehtNo+U4vAh4KdmmOVGQScBlXplhzlUKfd8FmPfksn9rmZLjZBuHaGMEJJuDRqpUIUh/1ejOsGF26sXxjrT2wW6ovj+IJy1FTTIbIkiouYUlAnJ4n60R1PMcX75O7YSUhXBmyvDUGp5BQfcH7nZ/7kUq6+rdAjnpWqlUtZVTqMraAhcAkBrZaesc18d3eqSSdRDD7kiG9VnnBFlpPDppwaZGSSoVumAUy0ceGcqI8S659kHmf6ZA9msw9zD7bREoi6oif/UzhH1VoXksrNQkFfc78sGxD0VzLygdDJ7RmkZPeBiHfX1yilToi1yrlRzRDLo46LvSEEiawhTa1i9W3UGr3p4LNxOxJr9tR9AjUuIlP21VEooikAhRf35qK0="
# run coverity scan on gcc build to keep from DOSing coverity
- coverity_scan_run_condition='"$CC" = gcc'
- LD_LIBRARY_PATH="$(pwd)/osslinstall/usr/local/lib:/usr/lib"
- PATH="$(pwd)/ibmtpm/src:${PATH}"
- ACLOCAL_PATH="/usr/share/gnulib/m4"
addons:
apt:
packages:
- autoconf-archive
- doxygen
- libcmocka-dev
- libcmocka0
- libgcrypt20-dev
- realpath
- lcov
- libssl-dev
- gnulib
coverity_scan:
project:
name: "01org/TPM2.0-TSS"
description: Build submitted via Travis-CI
notification_email: philip.b.tricca@intel.com
build_command_prepend: "./bootstrap && ./configure"
build_command: "make --jobs=$(nproc)"
branch_pattern: coverity_scan
install:
# Autoconf archive
- wget https://download.01.org/tpm2/autoconf-archive-2017.09.28.tar.xz
- sha256sum autoconf-archive-2017.09.28.tar.xz | grep -q 5c9fb5845b38b28982a3ef12836f76b35f46799ef4a2e46b48e2bd3c6182fa01 || travis_terminate 1
- tar xJf autoconf-archive-2017.09.28.tar.xz
- cp autoconf-archive-2017.09.28/m4/ax_code_coverage.m4 m4/
- cp autoconf-archive-2017.09.28/m4/ax_prog_doxygen.m4 m4/
# Coveralls
- pip install --user cpp-coveralls
# IBM-TPM
- wget https://download.01.org/tpm2/ibmtpm974.tar.gz
# OpenSSL 1.0.2
# (Must come after all wgets, since it overrides libcrypto.so for the test-environment)
- mkdir -p osslinstall/usr/local/bin
- git clone --branch $OPENSSL_BRANCH --depth=1 https://github.com/openssl/openssl.git
- pushd openssl
- ./config --prefix=/usr/local --openssldir=/usr/local/openssl shared
- make -j$(nproc)
- |
if [ "$OPENSSL_BRANCH" == "OpenSSL_1_0_2-stable" ]; then
make install INSTALL_PREFIX=${PWD}/../osslinstall
else
make install DESTDIR=${PWD}/../osslinstall
fi
- which openssl
- popd
# IBM-TPM
- sha256sum ibmtpm974.tar.gz | grep -q ^8e45d86129a0adb95fee4cee51f4b1e5b2d81ed3e55af875df53f98f39eb7ad7 || travis_terminate 1
- mkdir ibmtpm
- tar axf ibmtpm974.tar.gz -C ibmtpm
- make -C ibmtpm/src -j$(nproc)
# 2.1.0 version of uthash
- wget --no-check-certificate https://github.com/troydhanson/uthash/archive/v2.1.0.tar.gz
- tar xzf v2.1.0.tar.gz
- mkdir -p $(pwd)/osslinstall/usr/local/include
- cp uthash-2.1.0/src/*.h $(pwd)/osslinstall/usr/local/include/
before_script:
- ./bootstrap
script:
# short-circuit normal build if we've already done a coverity scan
- |
if [ "${COVERITY_SCAN_BRANCH}" == 1 ]; then
echo "COVERITY_SCAN_BRANCH set, not running normal build."
exit 0
fi
# build with no tests enabled
- mkdir ./build-no-tests
- pushd ./build-no-tests
- ../configure CFLAGS=-I${PWD}/../osslinstall/usr/local/include LDFLAGS=-L${PWD}/../osslinstall/usr/local/lib
- make -j$(nproc)
- popd
# build with all tests enabled
- mkdir ./build
- pushd ./build
- |
if [ "$CC" == "gcc" ]; then
export CONFIGURE_OPTIONS="--enable-code-coverage";
fi
- |
if [ "$CC" == "clang" ]; then
scan-build ../configure --enable-tcti-partial-reads=$WITH_TCTI_PARTIAL --enable-tcti-device-async=$WITH_TCTI_ASYNC --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS CFLAGS=-I${PWD}/../osslinstall/usr/local/include LDFLAGS=-L${PWD}/../osslinstall/usr/local/lib
else
../configure --enable-tcti-partial-reads=$WITH_TCTI_PARTIAL --enable-tcti-device-async=$WITH_TCTI_ASYNC --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS CFLAGS=-I${PWD}/../osslinstall/usr/local/include LDFLAGS=-L${PWD}/../osslinstall/usr/local/lib
fi
- |
if [ "$CC" == "clang" ]; then
scan-build --status-bugs make -j$(nproc) check
else
make -j$(nproc) check
fi
- |
- popd
# make distcheck
- mkdir ./distcheck_build
- pushd ./distcheck_build
- ../configure --enable-unit --enable-integration CFLAGS=-I${PWD}/../osslinstall/usr/local/include LDFLAGS=-L${PWD}/../osslinstall/usr/local/lib
- make -j$(nproc) distcheck
- popd
- |
if [ "$CC" == "gcc" -a -n "$COVERALLS_REPO_TOKEN" ]; then
coveralls --build-root=build \
--exclude=ibmtpm --exclude=include --exclude=test \
--gcov-options '\-lp'
fi
|