.travis.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. language: python
  2. sudo: required
  3. cache: pip
  4. python:
  5. - '2.7'
  6. - '3.4'
  7. - '3.5'
  8. - '3.6'
  9. os:
  10. - linux
  11. env:
  12. global:
  13. - PYTHONUNBUFFERED=yes
  14. matrix:
  15. - MATRIX_TOXENV=unit
  16. - MATRIX_TOXENV=integration-rabbitmq
  17. - MATRIX_TOXENV=integration-redis
  18. - MATRIX_TOXENV=integration-dynamodb
  19. matrix:
  20. include:
  21. - python: '3.5'
  22. env: TOXENV=pypy-unit PYPY_VERSION="5.3"
  23. - python: '3.5'
  24. env: TOXENV=pypy-integration-rabbitmq PYPY_VERSION="5.3"
  25. - python: '3.5'
  26. env: TOXENV=pypy-integration-redis PYPY_VERSION="5.3"
  27. - python: '3.5'
  28. env: TOXENV=pypy-integration-dynamodb PYPY_VERSION="5.3"
  29. - python: '3.5'
  30. env: TOXENV=flake8
  31. - python: '3.5'
  32. env: TOXENV=flakeplus
  33. - python: '3.5'
  34. env: TOXENV=apicheck
  35. - python: '3.5'
  36. env: TOXENV=configcheck
  37. - python: '3.5'
  38. env: TOXENV=pydocstyle
  39. before_install:
  40. - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env
  41. - |
  42. if [ "$TOXENV" = "pypy" ]; then
  43. export PYENV_ROOT="$HOME/.pyenv"
  44. if [ -f "$PYENV_ROOT/bin/pyenv" ]; then
  45. cd "$PYENV_ROOT" && git pull
  46. else
  47. rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/yyuu/pyenv.git "$PYENV_ROOT"
  48. fi
  49. "$PYENV_ROOT/bin/pyenv" install "pypy-$PYPY_VERSION"
  50. virtualenv --python="$PYENV_ROOT/versions/pypy-$PYPY_VERSION/bin/python" "$HOME/virtualenvs/pypy-$PYPY_VERSION"
  51. source "$HOME/virtualenvs/pypy-$PYPY_VERSION/bin/activate"
  52. fi
  53. - |
  54. if [[ "$TOXENV" == *dynamodb ]]; then
  55. sudo apt-get install -y default-jre supervisor
  56. mkdir /opt/dynamodb-local
  57. cd /opt/dynamodb-local && curl -L http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz | tar zx
  58. cd -
  59. echo '[program:dynamodb-local]' | sudo tee /etc/supervisor/conf.d/dynamodb-local.conf
  60. echo 'command=java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -inMemory' | sudo tee -a /etc/supervisor/conf.d/dynamodb-local.conf
  61. echo 'directory=/opt/dynamodb-local' | sudo tee -a /etc/supervisor/conf.d/dynamodb-local.conf
  62. sudo service supervisor stop
  63. sudo service supervisor start
  64. sleep 10
  65. curl localhost:8000
  66. fi
  67. after_success:
  68. - .tox/$TRAVIS_PYTHON_VERSION/bin/coverage xml
  69. - .tox/$TRAVIS_PYTHON_VERSION/bin/codecov -e TOXENV
  70. install: travis_retry pip install -U tox
  71. script: tox -v -- -v
  72. notifications:
  73. irc:
  74. channels:
  75. - "chat.freenode.net#celery"
  76. on_success: change
  77. on_failure: change
  78. services:
  79. - rabbitmq
  80. - redis