language: c # # Try building on these 4 architectures; all are 64-bit, and all but # "s390x", a/k/a z/Architecture, are little-endian. # arch: - amd64 - ppc64le - s390x - arm64 os: - linux - osx dist: bionic compiler: - gcc - clang # # Linux runs on all of the architectures listed above; macOS currently # runs only on 64-bit x86, although the Spaceshipologists are all in a # tizzy about the possibility of Arm-based Macs. Suppress the macOS # builds that don't work. # # In addition, with newer versions of macOS, Apple ships a "gcc" that's # just another front end to Clang, presumably for backwards # compatibility with build scripts etc. that expect the compiler to be # "gcc", so don't bother doing "gcc" builds on macOS. # jobs: exclude: - arch: ppc64le os: osx - arch: s390x os: osx - arch: arm64 os: osx - compiler: gcc os: osx cache: ccache env: global: # encrypted COVERITY_SCAN_TOKEN from # https://scan.coverity.com/projects//submit_build?tab=travis_ci - secure: "SwNcek+I4lMVcnb5EGGmNm6ljWN6C/mnXzBr82a5rEQNKxAoJfdvvPpKIp0iEfg5j0PtYlcRHoIDyVZ/6QM/WEw0wrio9Z0cio9hkOS6kV8g2QouXfnoNtKJ5nNso7UD2GPJ9+M0GIR1GZ0Edvxr81sHlNAkpVKydYGBwCIMGyg=" # Coverity run condition (avoid matrix multiple runs), need customized # build script. Need an update if new matrix cases. - coverity_scan_run_condition='"$TRAVIS_CPU_ARCH" = amd64 -a "$TRAVIS_OS_NAME" = linux -a "$CC" = gcc -a "$REMOTE" = enable -a "$CMAKE" = no' # Coverity script test mode (if true no uploading, avoid reaching the quota) # usual processing: false. - coverity_scan_script_test_mode=false - MAKEFLAGS='-j 2' # Travis CI VMs come with 2 cores matrix: - REMOTE=disable CMAKE=no - ENABLE_REMOTE="" CMAKE=yes - REMOTE=enable CMAKE=no - ENABLE_REMOTE="-DENABLE_REMOTE=ON" CMAKE=yes matrix: fast_finish: true addons: coverity_scan: # customized build script URL # TRAVIS_REPO_SLUG: owner_name/repo_name of repository currently being built # TRAVIS_BRANCH: name of the branch currently being built build_script_url: https://raw.githubusercontent.com/$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH/.travis-coverity-scan-build.sh # project metadata project: name: $TRAVIS_REPO_SLUG # Where email notification of build analysis results will be sent #notification_email: tcpdump-workers@lists.tcpdump.org # Commands to prepare for build_command build_command_prepend: ./configure --enable-remote # This command will be added as an argument to "cov-build" to compile # the project for analysis build_command: make # Pattern to match selecting branches that will run analysis branch_pattern: coverity_scan apt: packages: - libdbus-1-dev - libbluetooth-dev - libnl-genl-3-dev - libibverbs-dev git: quiet: true depth: 3 before_install: - uname -a - date - if [ "$TRAVIS_OS_NAME" = linux ]; then apt list --installed 'lib*-dev'; fi install: before_script: script: - if [ "$COVERITY_SCAN_BRANCH" = 1 ]; then echo "Coverity build - nothing more to do"; exit 0; fi - touch .devel configure - if [ "$CMAKE" = no ]; then echo '$ ./configure [...]' && echo travis_fold:start:script.configure; fi - if [ "$CMAKE" = no ]; then ./configure --prefix=/tmp "--${REMOTE}-remote"; fi - if [ "$CMAKE" = no ]; then echo -n travis_fold:end:script.configure; fi - if [ "$CMAKE" = yes ]; then mkdir build; fi - if [ "$CMAKE" = yes ]; then cd build; fi - if [ "$CMAKE" = yes ]; then echo travis_fold:start:script.cmake; fi - if [ "$CMAKE" = yes ]; then cmake -DCMAKE_INSTALL_PREFIX=/tmp $ENABLE_REMOTE ..; fi - if [ "$CMAKE" = yes ]; then echo -n travis_fold:end:script.cmake; fi - make -s - make -s testprogs - echo '$ make install [...]' && echo travis_fold:start:script.make_install - PATH=$PATH make install - echo -n travis_fold:end:script.make_install - if [ "$CMAKE" = no ]; then testprogs/findalldevstest; fi - if [ "$CMAKE" = yes ]; then run/findalldevstest; fi - if [ "$CMAKE" = no ]; then make releasetar; fi - echo '$ cat Makefile [...]'; echo travis_fold:start:script.cat_makefile - if [ "$CMAKE" = no ]; then cat Makefile | sed -n '1,/DO NOT DELETE THIS LINE -- mkdep uses it/p'; fi - if [ "$CMAKE" = yes ]; then cat Makefile; fi - echo -n travis_fold:end:script.cat_makefile - echo '$ cat config.h'; echo travis_fold:start:script.cat_config_h - cat config.h - echo -n travis_fold:end:script.cat_config_h - if [ "$CMAKE" = no ]; then echo '$ cat config.log'; echo travis_fold:start:script.cat_config_log; fi - if [ "$CMAKE" = no ]; then cat config.log; fi - if [ "$CMAKE" = no ]; then echo -n travis_fold:end:script.cat_config_log; fi - if [ "$TRAVIS_OS_NAME" = osx ]; then sleep 10; fi