aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: c9f0db7690f981915a8ada5556951f9690272915 (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
dist: bionic

os: linux

language: c

env:
  global:
    - PREFIX=${HOME}/opt
    - PATH=${PREFIX}/bin:${PATH}
    - OPENSSL_BRANCH=openssl-3.0.0-alpha6
    - RPATH="-Wl,-rpath=${PREFIX}/lib"

matrix:
  include:
    - name: gcc | openssl-stable
    - name: clang | openssl-stable
      compiler: clang
    - name: gcc | openssl-master
      env: OPENSSL_BRANCH=master
    # Dynamic and static analysers
    - name: gcc+ASan | openssl-stable
      env: ASAN=-DASAN=1
    - name: gcc+Coverity | openssl-stable (cron)
      env: COVERITY_SCAN_PROJECT_NAME="gost-engine" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="beldmit@gmail.com" COVERITY_SCAN_BUILD_COMMAND="make"
      if: type == cron
      script:
        - mkdir build
        - cd build
        - cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ..
        - curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || true
    # Other arches
    - name: gcc | openssl-stable
      env: CFLAGS=-m32 LDFLAGS=-m32 SETARCH="setarch i386" APT_INSTALL=gcc-multilib
    - name: gcc | openssl-stable
      arch: ppc64le
    - name: gcc | openssl-stable
      arch: arm64
    - name: gcc | openssl-stable
      arch: s390x
    # Non-linux
    - name: clang | openssl-stable
      os: osx
      compiler: clang
      env: RPATH="-Wl,-rpath,${PREFIX}/lib"
  allow_failures:
      env: OPENSSL_BRANCH=master
      if: type == pull_request

before_script:
  - curl -L https://cpanmin.us | sudo perl - --sudo App::cpanminus
  - sudo cpanm --notest Test2::V0 > build.log 2>&1 || (cat build.log && exit 1)
  - if [ "$APT_INSTALL" ]; then sudo apt-get install -y $APT_INSTALL; fi
  - git clone --depth 1 -b ${OPENSSL_BRANCH} https://github.com/openssl/openssl.git
  - cd openssl
  - git describe --always --long
  - $SETARCH ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} ${RPATH}
  - travis_wait $SETARCH make -s -j$(nproc) build_libs
  - travis_wait $SETARCH make -s -j$(nproc) build_programs
  - make -s install_sw
  - cd ..

script:
  - set -e
  - mkdir build
  - cd build
  - cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ${ASAN} ..
  - make
  - make test CTEST_OUTPUT_ON_FAILURE=1
  - if [ -z "$ASAN" ]; then make tcl_tests; fi