aboutsummaryrefslogtreecommitdiffstats
path: root/src/scripts/ci/travis.yml
blob: a26fc3989bd66a65989f6ebe9f0149872ceac31a (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
language: cpp

os:
  - linux
  - osx

dist: trusty
sudo: required
osx_image: xcode8.2

compiler:
  - clang
  - gcc

env:
  global:
    - CCACHE_MAXSIZE=250M
    - CCACHE_MAXFILES=2000
    - CCACHE_COMPRESS=1
    # SONAR_TOKEN for accessing the Sonar server
    - secure: "VezRbHFg6kllV5WG06M3tG3aHJaC3xrMylJ6RCVbL+uz2JeralVCqV7eIk4fVb9cu83Li+weEa0AJj0wkxpIUJ+vUh5F65L6gSWSbgHP7muOSVsmnEc6KvX4n3av/ZGe4geSmsxqh2pd/2xI1h7KioGRhKeqaZIdjVgWgGJW2iQ="

  matrix:
    - BUILD_MODE="docs"
    - BUILD_MODE="lint"
    - BUILD_MODE="mini-shared"
    - BUILD_MODE="mini-static"
    - BUILD_MODE="shared"
    - BUILD_MODE="static"
    - BUILD_MODE="bsi"
    - BUILD_MODE="nist"
    - BUILD_MODE="sanitizer"
    - BUILD_MODE="cross-ppc32"
    - BUILD_MODE="cross-ppc64"
    - BUILD_MODE="cross-arm32"
    - BUILD_MODE="cross-arm64"
    - BUILD_MODE="cross-win32"
    - BUILD_MODE="valgrind"
    - BUILD_MODE="sonar"
    - BUILD_MODE="coverage"
    - BUILD_MODE="fuzzers"

matrix:
  exclude:
    # Skip GCC on OS X entirely
    - os: osx
      compiler: gcc

    # Run static, docs, lint, bsi, nist, fuzzers, coverage, valgrind,
    # sonar, sanitizer, minimized and non-ARM cross builds only on Linux/gcc.
    # The sanitizer builds under Clang run the tests very slowly and
    # cause CI timeouts.

    - compiler: clang
      env: BUILD_MODE="static"
    - compiler: clang
      env: BUILD_MODE="bsi"
    - compiler: clang
      env: BUILD_MODE="nist"
    - compiler: clang
      env: BUILD_MODE="lint"
    - compiler: clang
      env: BUILD_MODE="docs"
    - compiler: clang
      env: BUILD_MODE="coverage"
    - compiler: clang
      env: BUILD_MODE="sonar"
    - compiler: clang
      env: BUILD_MODE="sanitizer"
    - compiler: clang
      env: BUILD_MODE="fuzzers"
    - compiler: clang
      env: BUILD_MODE="valgrind"
    - compiler: clang
      env: BUILD_MODE="mini-shared"
    - compiler: clang
      env: BUILD_MODE="mini-static"
    - compiler: clang
      env: BUILD_MODE="cross-win32"
    - compiler: clang
      env: BUILD_MODE="cross-ppc32"
    - compiler: clang
      env: BUILD_MODE="cross-ppc64"

    # No ARM Clang compiler on Linux
    - os: linux
      compiler: clang
      env: BUILD_MODE="cross-arm32"
    - os: linux
      compiler: clang
      env: BUILD_MODE="cross-arm64"

install:
  - ./src/scripts/ci/setup_travis.sh

script:
  - ./src/scripts/ci_build.py --os=$TRAVIS_OS_NAME --cc=$CC --cc-bin=$CXX --compiler-cache=ccache $BUILD_MODE

# whitelist branches to avoid testing feature branches twice (as branch and as pull request)
branches:
  only:
    - master
    - release-2
    - coverity_scan

notifications:
  email: botan-commits@lists.randombit.net

git:
  depth: 5

cache:
  ccache: true
  directories:
    - $HOME/.sonar/cache

addons:
  sonarcloud: true

  coverity_scan:
    project:
      name: "randombit/botan"
    notification_email: jack@randombit.net
    build_command_prepend: "./configure.py --no-optimizations --with-zlib --with-openssl"
    build_command: "make -j2"
    branch_pattern: coverity_scan