.travis.yml 2.7 KB

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