summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: eccc7202d5f40020ba7aba2d0a384c45347d8800 (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
sudo: false
language: python

matrix:
  include:
  - language: generic
    os: osx
    env: TOXENV=py27
  - 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.2"
    env: TOXENV=py32
  - 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:
      CRYPTOGRAPHY_GIT_MASTER=true
  - python: "2.7"
    env:
      CRYPTOGRAPHY_GIT_MASTER=true
  - python: "3.2"
    env:
      CRYPTOGRAPHY_GIT_MASTER=true
  - python: "3.3"
    env:
      CRYPTOGRAPHY_GIT_MASTER=true
  - python: "3.4"
    env:
      CRYPTOGRAPHY_GIT_MASTER=true
  - python: "pypy"
    env:
      CRYPTOGRAPHY_GIT_MASTER=true

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

  # 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.
  allow_failures:
  - language: generic
    os: osx
    env: TOXENV=py27
  - env:
      CRYPTOGRAPHY_GIT_MASTER=true
  - env:
      OPENSSL=0.9.8

before_install:
  - if [ -n "$CRYPTOGRAPHY_GIT_MASTER" ]; then pip install git+https://github.com/pyca/cryptography.git;fi

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
    source ~/.venv/bin/activate
    pip install coveralls coverage wheel

script:
  - |
    if [[ "$(uname -s)" == "Darwin" ]]; 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"
    fi
    source ~/.venv/bin/activate
    pip install -e .
  - |
    source ~/.venv/bin/activate
    coverage run --branch --source=OpenSSL setup.py bdist_wheel test
  - |
    source ~/.venv/bin/activate
    coverage report -m
    python -c "import OpenSSL.SSL; print(OpenSSL.SSL.SSLeay_version(OpenSSL.SSL.SSLEAY_VERSION))"

after_script:
  - source ~/.venv/bin/activate && coveralls

notifications:
  email: false