ci: update Travis configuration
* Add testing on arm64, ppc64le, and s390x with select compiler versions
* Allow disabling the headers check by setting DISABLE_HEADERS_CHECK
* Drop all versions of gcc < 7 and clang < 5
* Add clang 11 (development branch)
* Reenable ASan on Linux with gcc 9 and clang 7, the upstream
bugs have been fixed; ASan on clang 8 remains disabled
* Drop Xcode 9.2 (macOS 10.12 is no longer supported)
* Upgrade Xcode 11 to 11.3
* Remove USE_OPENSSL_1_1 and always build with openssl 1.1.1,
since that's the only version available on Homebrew now
* Workaround issue with missing /usr/local/opt/openssl on macOS
* Various cleanups
Change-Id: I90e7d61d176b60c1e6b90d2374a7a51dd1deabb3
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index ba85553..ae45ce5 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -7,13 +7,7 @@
set -x
if has OSX $NODE_LABELS; then
- FORMULAE=(boost pkg-config)
- if [[ -n $USE_OPENSSL_1_1 ]]; then
- FORMULAE+=(openssl@1.1)
- else
- FORMULAE+=(openssl)
- fi
-
+ FORMULAE=(boost openssl pkg-config)
brew update
if [[ -n $TRAVIS ]]; then
# Travis images come with a large number of brew packages
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index 66ec27f..3d2e3bb 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -16,35 +16,31 @@
elif [[ -z $DISABLE_ASAN ]]; then
ASAN="--with-sanitizer=address"
fi
-if [[ -n $USE_OPENSSL_1_1 ]] && has OSX $NODE_LABELS; then
- OPENSSL="--with-openssl=/usr/local/opt/openssl@1.1"
-fi
# Cleanup
sudo_preserve_env PATH -- ./waf --color=yes distclean
if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
- # Configure/build static library in optimized mode with tests
- ./waf --color=yes configure --enable-static --disable-shared --with-tests $OPENSSL
- ./waf --color=yes build -j${WAF_JOBS:-1}
+ # Build static library in release mode with tests and without precompiled headers
+ ./waf --color=yes configure --enable-static --disable-shared --with-tests --without-pch
+ ./waf --color=yes build -j${WAF_JOBS:-1}
- # Cleanup
- sudo_preserve_env PATH -- ./waf --color=yes distclean
+ # Cleanup
+ sudo_preserve_env PATH -- ./waf --color=yes distclean
- # Configure/build static and shared library in optimized mode without tests
- ./waf --color=yes configure --enable-static --enable-shared $OPENSSL
- ./waf --color=yes build -j${WAF_JOBS:-1}
+ # Build static and shared library in release mode without tests
+ ./waf --color=yes configure --enable-static --enable-shared
+ ./waf --color=yes build -j${WAF_JOBS:-1}
- # Cleanup
- sudo_preserve_env PATH -- ./waf --color=yes distclean
+ # Cleanup
+ sudo_preserve_env PATH -- ./waf --color=yes distclean
fi
-# Configure/build shared library in debug mode with tests/examples and without precompiled headers
-./waf --color=yes configure --disable-static --enable-shared --debug --with-tests \
- --with-examples --without-pch $ASAN $COVERAGE $OPENSSL
+# Build shared library in debug mode with tests and examples
+./waf --color=yes configure --disable-static --enable-shared --debug --with-tests --with-examples $ASAN $COVERAGE
./waf --color=yes build -j${WAF_JOBS:-1}
-# (tests will be run against debug version)
+# (tests will be run against the debug version)
# Install
sudo_preserve_env PATH -- ./waf --color=yes install
diff --git a/.jenkins.d/40-standalone-header-compilation.sh b/.jenkins.d/40-headers-check.sh
similarity index 83%
rename from .jenkins.d/40-standalone-header-compilation.sh
rename to .jenkins.d/40-headers-check.sh
index cb600ee..1258646 100755
--- a/.jenkins.d/40-standalone-header-compilation.sh
+++ b/.jenkins.d/40-headers-check.sh
@@ -5,6 +5,11 @@
# It's intentional not to use `set -e`, because this script wants to check all headers
# (similar to running all test cases), instead of failing at the first error.
+if [[ -n $DISABLE_HEADERS_CHECK ]]; then
+ echo 'Skipping headers check.'
+ exit 0
+fi
+
CXX=${CXX:-g++}
STD=-std=c++14
CXXFLAGS="-O2 -Wall -Wno-unused-const-variable -Wno-unused-local-typedef $(pkg-config --cflags libndn-cxx)"
@@ -15,14 +20,14 @@
NCHECKED=0
NERRORS=0
while IFS= read -r -d '' H; do
- echo "Verifying standalone header compilation for ${H#${INCLUDEDIR}/}"
+ echo "Checking header ${H#${INCLUDEDIR}/}"
"$CXX" -xc++ $STD $CXXFLAGS -c -o /dev/null "$H"
[[ $? -eq 0 ]] || ((NERRORS++))
((NCHECKED++))
done < <(find "$INCLUDEDIR" -name '*.hpp' -type f -print0 2>/dev/null)
if [[ $NCHECKED -eq 0 ]]; then
- echo 'No header found. Is ndn-cxx installed?'
+ echo 'No headers found. Is ndn-cxx installed?'
exit 1
else
echo "$NCHECKED headers checked."