summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 8c569d939609fd9e5b18263143261fbc2bb869a5 (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
sudo: false
language: c

os:
  - linux
  - osx

dist: xenial

compiler:
  - gcc
  - clang

cache: ccache

env:
  global:
    # encrypted COVERITY_SCAN_TOKEN from
    # https://scan.coverity.com/projects/<project_id>/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_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:
      - libusb-1.0-0-dev
      - libdbus-glib-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 dpkg-query -f '${Package}__${Version}__${Architecture}\n' -W 'lib*-dev'; fi

install:

before_script:

script:
  - if [ "$COVERITY_SCAN_BRANCH" = 1 ]; then 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 all
  - 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