summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 52ba39cafa58b11da5fe5a2efea1c598f70caa2d (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
sudo: false
language: python
env:
  global:
    - LC_ALL=en_US.UTF-8

matrix:
  include:
  - language: generic
    os: osx
    env: TOXENV=py27 OSX_OPENSSL=homebrew
  - language: generic
    os: osx
    env: TOXENV=py27 OSX_OPENSSL=system
  - python: "2.6" # these are just to make travis's UI a bit prettier
    env: TOXENV=py26
  - python: "2.7"
    env: TOXENV=py27
  - python: "3.3"
    env: TOXENV=py33
  - python: "3.4"
    env: TOXENV=py34
  - python: "pypy"
    env: TOXENV=pypy

  # Also run the tests against cryptography master.
  - python: "2.6"
    env: TOXENV=py26-cryptographyMaster
  - python: "2.7"
    env: TOXENV=py27-cryptographyMaster
  - python: "3.3"
    env: TOXENV=py33-cryptographyMaster
  - python: "3.4"
    env: TOXENV=py34-cryptographyMaster
  - python: "pypy"
    env: TOXENV=pypy-cryptographyMaster

  # Also run at least a little bit against an older version of OpenSSL.
  - python: "2.7"
    env:
      OPENSSL=0.9.8 TOXENV=py27
    addons:
      apt:
        sources:
          - lucid
        packages:
          - libssl-dev/lucid

  # Meta
  - python: "2.7"
    env: TOXENV=check-manifest

  - python: "2.7"
    env: TOXENV=pypi-readme

  - python: "2.7"
    env: TOXENV=flake8

  - python: "2.7"
    env: TOXENV=pyroma
    
  # Let the cryptography master builds fail because they might be triggered by
  # cryptography changes beyond our control.
  # Also allow OS X and 0.9.8 to fail at the moment while we fix these new
  # build configurations.
  # Also allow lint to fail while we fix existing lint.
  allow_failures:
  - language: generic
    os: osx
    env: TOXENV=py27 OSX_OPENSSL=homebrew
  - env: TOXENV=py26-cryptographyMaster
  - env: TOXENV=py27-cryptographyMaster
  - env: TOXENV=py33-cryptographyMaster
  - env: TOXENV=py34-cryptographyMaster
  - env: TOXENV=pypy-cryptographyMaster
  - env: OPENSSL=0.9.8 TOXENV=py27
  - env: TOXENV=flake8
  - env: TOXENV=pyroma

install:
  - |
    if [[ "$(uname -s)" == 'Darwin' ]]; then
      brew update
      brew upgrade openssl
      curl -O https://bootstrap.pypa.io/get-pip.py
      python get-pip.py --user
      pip install --user virtualenv
    else
      pip install virtualenv
    fi
    python -m virtualenv ~/.venv
    ~/.venv/bin/pip install coveralls tox

script:
  - |
    if [[ "$(uname -s)" == 'Darwin' && $OSX_OPENSSL == 'homebrew' ]]; then
      # set our flags to use homebrew openssl
      export ARCHFLAGS="-arch x86_64"
      export LDFLAGS="-L/usr/local/opt/openssl/lib"
      export CFLAGS="-I/usr/local/opt/openssl/include"
      export PATH="/usr/local/opt/openssl/bin:$PATH"
    fi
    ~/.venv/bin/tox

after_script:
  - ~/.venv/bin/coveralls

notifications:
  email: false