.travis.yml 4.58 KB
Newer Older
1
# Travis CI script
2

3
language: c
4

5 6 7 8
os:
- linux
- osx

9 10
dist: trusty

11 12
cache: ccache

13
env:
14 15 16 17 18 19 20 21 22 23 24 25 26
  matrix:
    - BUILD_TYPE=default CURVE=tweetnacl DRAFT=enabled
    - BUILD_TYPE=cmake CURVE=tweetnacl
    - BUILD_TYPE=default
  # tokens to deploy releases on OBS and create/delete temporary branch on Github.
  # 1) Create a token on https://github.com/settings/tokens/new with "public_repo"
  #    capability and encrypt it with travis encrypt --org -r zeromq/libzmq GH_TOKEN="<token>"
  # 2) Create 2 OBS tokens with osc token --create network:messaging:zeromq:release-<stable|draft> libzmq
  #    encrypt them with travis encrypt --org -r zeromq/libzmq OBS_<STABLE|DRAFT>_TOKEN="<token>"
  global:
    - secure: aaIs9Y44FYp9VFCqa6LLD4illBH4aUfbS0zzzbAQ5xJvD6NfBsMiKEIhf/kRNCHAtP+1VfQVOejTD6/i08ALsVr3cZD9oB/t7874tz2/jeZUIhRNo+1KwyaVqNg0yUSV6ASIoq4aOfuGnjBlezNQ8LQ2bjQB2m4Enl5wxoYcYdA=
    - secure: YFrcedBIKe0NR1WC6qQi9phZgtnzOiBIXm40TirvCtstV4eVnSouKgtQfLLArZ4o2tjflq4grQQNo1rJatvyi5YPOXsMcndsni18S+4Ffu8qbECdtPrK52vBweuf7q9oV9Ydax0Fm4bEqEMOZ2/mRBy3nK+mgsE3upeMwyWR0Zw=
    - secure: lbZSzmqN39QdJwewKOZgq/1ijPKuyx9MFrGzMqXj2+eOSlaZS/tNavHMdKJOev+qJGK9wxmwzxOxS10AiH+AvN7WBacXX4ZtudjScz2HKJRDWTKyzMbzyScq51afniItzrsm+Vo8NHkenNFkux0sSbh0aHlpkLwrGQu+WZWcDN4=
27 28

matrix:
29
  include:
30 31 32 33
  - env: BUILD_TYPE=default CURVE=tweetnacl IPv6=ON
    os: linux
    dist: precise
    sudo: false
34 35 36 37 38 39 40 41 42 43 44 45
  - env: BUILD_TYPE=coverage CURVE=tweetnacl DRAFT=enabled
    os: linux
    addons:
      apt:
        packages:
        - lcov
  - env: BUILD_TYPE=valgrind CURVE=tweetnacl DRAFT=enabled
    os: linux
    addons:
      apt:
        packages:
        - valgrind
46
  - env: BUILD_TYPE=default CURVE=libsodium GSSAPI=enabled PGM=enabled NORM=enabled
47 48 49 50
    os: linux
    addons:
      apt:
        sources:
51 52
        - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/ ./'
          key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/Release.key'
53
        packages:
54
        - libkrb5-dev
55
        - libnorm-dev
56
        - libpgm-dev
57
        - libsodium-dev
58 59
        - asciidoc
        - xmlto
60
  - env: BUILD_TYPE=default CURVE=libsodium DRAFT=enabled GSSAPI=enabled PGM=enabled NORM=enabled
61 62 63 64 65 66 67
    os: linux
    addons:
      apt:
        sources:
        - sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/ ./'
          key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/Release.key'
        packages:
68
        - libkrb5-dev
69
        - libnorm-dev
70
        - libpgm-dev
71 72 73
        - libsodium-dev
  - env: BUILD_TYPE=default CURVE=libsodium DRAFT=enabled
    os: osx
74 75
  - env: BUILD_TYPE=default CURVE=tweetnacl DRAFT=enabled ADDRESS_SANITIZER=enabled
    os: linux
76 77 78 79 80 81 82 83
    dist: trusty
    addons:
      apt:
        sources:
        - sourceline: 'ppa:ubuntu-toolchain-r/test'
        packages:
        - g++-6
        - gcc-6
84 85 86
  - env: BUILD_TYPE=android CURVE=tweetnacl
    os: linux
    dist: trusty
87
  - env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1 CLANG_FORMAT=/usr/local/clang-5.0.0/bin/clang-format
88
    os: linux
89 90 91 92 93 94
    addons:
    apt:
      sources:
        - llvm-toolchain-trusty-5.0
      packages:
        - clang-5.0
95 96 97 98
  - env: BUILD_TYPE=default POLLER=poll
    os: linux
  - env: BUILD_TYPE=default POLLER=select
    os: linux
99

100
sudo: false
101

102
before_install:
103 104
- if [ $TRAVIS_OS_NAME == "osx" -a $BUILD_TYPE == "android" ] ; then brew update; brew install binutils ; fi
- if [ $TRAVIS_OS_NAME == "osx" -a $CURVE == "libsodium" ] ; then brew update; brew install libsodium ; fi
105

106 107 108 109
before_script:
# ZMQ stress tests need more open socket (files) than the usual default
# On OSX, it seems the way to set the max files limit is constantly changing, so
# try to use all known knobs to ensure compatibility across various versions
110
- if [ $TRAVIS_OS_NAME == "osx" ] ; then sudo sysctl -w kern.maxfiles=64000 ; sudo sysctl -w kern.maxfilesperproc=64000 ; sudo launchctl limit maxfiles 64000 64000 ; ulimit -n 64000; fi
111

112
# Build and check this project according to the BUILD_TYPE
113
script: ./ci_build.sh
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129

# Deploy tags
before_deploy:
- . ./ci_deploy.sh
deploy:
  provider: releases
  api_key:
    secure: vGB5E+A8wxm2J1GJZzmIgT9PrjEzvd9gE8iui8FyxSbxAsW9vFZFGZC/21sTtpVcmRarwQCHH1UEbtg+nJwN2iD9YzMRnSVks8xqP+b709YW+VXaMuhZgTzWa74IorQku7NuvLibvQk72/OSgdwPGaNJ6f5AX9pnWVWbEoW1svE=
  file_glob: true
  file: ${LIBZMQ_DEPLOYMENT}
  skip_cleanup: true
  on:
    repo: zeromq/libzmq
    branch: master
    tags: true
    condition: "$TRAVIS_OS_NAME =~ (linux) && $BUILD_TYPE =~ (default) && $CURVE =~ (libsodium) && -z $DRAFT"