]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - .travis.yml
93d56c14b6d4bf21063e638d102fae82744882bd
[openssl-gost/engine.git] / .travis.yml
1 dist: bionic
2
3 os: linux
4
5 language: c
6
7 env:
8   global:
9     - PREFIX=${HOME}/opt
10     - PATH=${PREFIX}/bin:${PATH}
11     - OPENSSL_BRANCH=master
12     # known good commit
13     - OPENSSL_COMMIT=edbb56ee4fafc07eb77747ad25278a04b89adc09
14     - RPATH="-Wl,-rpath=${PREFIX}/lib"
15
16 matrix:
17   include:
18     - name: gcc | openssl-hope-for-best
19     - name: clang | openssl-hope-for-best
20       compiler: clang
21     - name: gcc | openssl-master
22       env: OPENSSL_BRANCH=master
23       env: OPENSSL_COMMIT=HEAD
24     # Dynamic and static analysers
25     - name: gcc+ASan | openssl-hope-for-best
26       env: ASAN=-DASAN=1
27     - name: gcc+Coverity | openssl-hope-for-best (cron)
28       env: COVERITY_SCAN_PROJECT_NAME="gost-engine" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="beldmit@gmail.com" COVERITY_SCAN_BUILD_COMMAND="make"
29       if: type == cron
30       script:
31         - mkdir build
32         - cd build
33         - cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ..
34         - curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || true
35     # Other arches
36     - name: gcc | openssl-hope-for-best
37       env: CFLAGS=-m32 LDFLAGS=-m32 SETARCH="setarch i386" APT_INSTALL=gcc-multilib
38     - name: gcc | openssl-hope-for-best
39       arch: ppc64le
40     - name: gcc | openssl-hope-for-best
41       arch: arm64
42     - name: gcc | openssl-hope-for-best
43       arch: s390x
44     # Non-linux
45     - name: clang | openssl-hope-for-best
46       os: osx
47       compiler: clang
48       env: RPATH="-Wl,-rpath,${PREFIX}/lib"
49   allow_failures:
50       env: OPENSSL_BRANCH=master
51     #  if: type == pull_request
52
53 before_script:
54   - curl -L https://cpanmin.us | sudo perl - --sudo App::cpanminus
55   - sudo cpanm --notest Test2::V0 > build.log 2>&1 || (cat build.log && exit 1)
56   - if [ "$APT_INSTALL" ]; then sudo apt-get install -y $APT_INSTALL; fi
57   #- git clone --depth 1 -b ${OPENSSL_BRANCH} https://github.com/openssl/openssl.git
58   - git clone --single-branch -b ${OPENSSL_BRANCH} https://github.com/openssl/openssl.git
59   - cd openssl
60   - git reset --hard ${OPENSSL_COMMIT}
61   - git describe --always --long
62   - $SETARCH ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} ${RPATH}
63   - travis_wait $SETARCH make -s -j$(nproc) build_libs
64   - travis_wait $SETARCH make -s -j$(nproc) build_programs
65   - make -s install_sw
66   - cd ..
67
68 script:
69   - mkdir build
70   - cd build
71   - cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ${ASAN} ..
72   - make
73   - make test CTEST_OUTPUT_ON_FAILURE=1
74   - if [ -z "$ASAN" ]; then make tcl_tests; fi