144 lines
4.2 KiB
YAML
144 lines
4.2 KiB
YAML
language: c
|
|
|
|
os: linux
|
|
dist: bionic
|
|
|
|
# don't build tags separately
|
|
if: tag IS blank
|
|
|
|
compiler: gcc
|
|
|
|
cache: ccache
|
|
|
|
before_install:
|
|
- travis_retry ./scripts/test.sh deps
|
|
- travis_retry ./scripts/test.sh pydeps
|
|
- travis_retry ./scripts/test.sh build-deps
|
|
|
|
before_script:
|
|
- sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 || true
|
|
|
|
script:
|
|
- ./scripts/test.sh
|
|
|
|
after_success:
|
|
if [ "$TEST" == "coverage" ]; then
|
|
bash <(curl -s https://codecov.io/bash);
|
|
fi
|
|
|
|
after_failure:
|
|
- cat config.log
|
|
- sleep 1
|
|
|
|
env:
|
|
global:
|
|
- TESTS_REDUCED_KEYLENGTHS=yes
|
|
- LEAK_DETECTIVE=no
|
|
- MONOLITHIC=no
|
|
|
|
jobs:
|
|
include:
|
|
- env: TEST=sonarcloud
|
|
if: type = push AND env(SONAR_TOKEN) IS present
|
|
git:
|
|
depth: false
|
|
cache:
|
|
directories:
|
|
- $HOME/.sonar-cache
|
|
addons:
|
|
sonarcloud:
|
|
organization: "strongswan"
|
|
- env: TEST=lgtm
|
|
if: type = push AND env(LGTM_TOKEN) IS present
|
|
git:
|
|
depth: false
|
|
- env: TEST=osx
|
|
compiler: clang
|
|
os: osx
|
|
- env: TEST=android
|
|
install:
|
|
# see https://developer.android.com/studio#command-tools
|
|
- export ANDROID_TOOLS=commandlinetools-linux-6200805_latest.zip
|
|
- export ANDROID_HOME=$HOME/android-sdk
|
|
- wget -nv https://dl.google.com/android/repository/$ANDROID_TOOLS
|
|
- unzip -q $ANDROID_TOOLS -d $ANDROID_HOME && rm $ANDROID_TOOLS
|
|
- export PATH=$PATH:$ANDROID_HOME/tools/bin
|
|
# sdkmanager only works with Java 8
|
|
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
|
- yes | sdkmanager --sdk_root=$ANDROID_HOME --licenses >/dev/null
|
|
- yes | sdkmanager --sdk_root=$ANDROID_HOME --install 'ndk;20.0.5594570'
|
|
- mkdir -p $HOME/.gradle
|
|
- echo "org.gradle.daemon=false" >> $HOME/.gradle/gradle.properties
|
|
- echo "org.gradle.console=plain" >> $HOME/.gradle/gradle.properties
|
|
# since the NDK is newly installed everytime, we have to use this to avoid cache misses
|
|
- export CCACHE_COMPILERCHECK=content
|
|
after_success:
|
|
- cat src/frontends/android/app/build/reports/lint-results.xml
|
|
before_cache:
|
|
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
|
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
|
|
cache:
|
|
ccache: true
|
|
directories:
|
|
- $HOME/.gradle/caches/
|
|
- $HOME/.gradle/wrapper/
|
|
- $HOME/.android/build-cache
|
|
- env: TEST=all
|
|
- env: TEST=all
|
|
compiler: clang
|
|
- env: TEST=all
|
|
arch: arm64
|
|
- env: TEST=all
|
|
arch: ppc64le
|
|
- env: TEST=all
|
|
arch: s390x
|
|
- env: TEST=all UBUNTU_XENIAL=yes
|
|
dist: xenial
|
|
- env: TEST=all UBUNTU_XENIAL=yes
|
|
dist: xenial
|
|
compiler: clang
|
|
- env: TEST=all MONOLITHIC=yes
|
|
- env: TEST=all MONOLITHIC=yes
|
|
compiler: clang
|
|
- env: TEST=all LEAK_DETECTIVE=yes
|
|
- env: TEST=all LEAK_DETECTIVE=yes
|
|
compiler: clang
|
|
- env: TEST=coverage
|
|
- env: TEST=fuzzing MONOLITHIC=yes
|
|
compiler: clang
|
|
- env: TEST=win64 MONOLITHIC=yes
|
|
- env: TEST=win32 MONOLITHIC=yes
|
|
- env: TEST=dist
|
|
# "default" with GCC is already tested with "dist" above
|
|
- env: TEST=default
|
|
compiler: clang
|
|
- env: TEST=default MONOLITHIC=yes
|
|
- env: TEST=default MONOLITHIC=yes
|
|
compiler: clang
|
|
- env: TEST=default LEAK_DETECTIVE=yes
|
|
- env: TEST=default LEAK_DETECTIVE=yes
|
|
compiler: clang
|
|
# we can't test Vstr as negative int args are not properly passed to CBs
|
|
- env: TEST=printf-builtin
|
|
- env: TEST=printf-builtin
|
|
compiler: clang
|
|
- env: TEST=printf-builtin LEAK_DETECTIVE=yes
|
|
- env: TEST=printf-builtin LEAK_DETECTIVE=yes
|
|
compiler: clang
|
|
- env: TEST=nm
|
|
- env: TEST=nm-no-glib
|
|
# the crypto plugins are build-tested with clang via "all" above
|
|
- env: TEST=botan
|
|
- env: TEST=botan LEAK_DETECTIVE=yes
|
|
- env: TEST=wolfssl
|
|
- env: TEST=wolfssl LEAK_DETECTIVE=yes
|
|
- env: TEST=openssl
|
|
- env: TEST=openssl LEAK_DETECTIVE=yes
|
|
- env: TEST=openssl-1.0 UBUNTU_XENIAL=yes
|
|
dist: xenial
|
|
- env: TEST=openssl-1.0 LEAK_DETECTIVE=yes UBUNTU_XENIAL=yes
|
|
dist: xenial
|
|
- env: TEST=gcrypt
|
|
- env: TEST=gcrypt LEAK_DETECTIVE=yes
|
|
- env: TEST=apidoc
|