.travis.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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="pypy2.7-5.8.0"
  24. - python: '3.5'
  25. env: TOXENV=pypy-integration-rabbitmq PYPY_VERSION="pypy2.7-5.8.0"
  26. - python: '3.5'
  27. env: TOXENV=pypy-integration-redis PYPY_VERSION="pypy2.7-5.8.0"
  28. - python: '3.5'
  29. env: TOXENV=pypy-integration-dynamodb PYPY_VERSION="pypy2.7-5.8.0"
  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. - python: '3.5'
  41. env: TOXENV=isort-check
  42. before_install:
  43. - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env
  44. - |
  45. if [[ "$TOXENV" =~ "pypy" ]]; then
  46. export PYENV_ROOT="$HOME/.pyenv"
  47. if [ -f "$PYENV_ROOT/bin/pyenv" ]; then
  48. cd "$PYENV_ROOT" && git pull
  49. else
  50. rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/pyenv/pyenv.git "$PYENV_ROOT"
  51. fi
  52. "$PYENV_ROOT/bin/pyenv" install "$PYPY_VERSION"
  53. virtualenv --python="$PYENV_ROOT/versions/$PYPY_VERSION/bin/python" "$HOME/virtualenvs/$PYPY_VERSION"
  54. source "$HOME/virtualenvs/$PYPY_VERSION/bin/activate"
  55. which python
  56. fi
  57. - |
  58. if [[ "$TOXENV" == *dynamodb ]]; then
  59. sudo apt-get update && sudo apt-get install -y default-jre supervisor
  60. mkdir /opt/dynamodb-local
  61. 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
  62. cd -
  63. echo '[program:dynamodb-local]' | sudo tee /etc/supervisor/conf.d/dynamodb-local.conf
  64. echo 'command=java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -inMemory' | sudo tee -a /etc/supervisor/conf.d/dynamodb-local.conf
  65. echo 'directory=/opt/dynamodb-local' | sudo tee -a /etc/supervisor/conf.d/dynamodb-local.conf
  66. sudo service supervisor stop
  67. sudo service supervisor start
  68. sleep 10
  69. curl localhost:8000
  70. fi
  71. after_success:
  72. - .tox/$TRAVIS_PYTHON_VERSION/bin/coverage xml
  73. - .tox/$TRAVIS_PYTHON_VERSION/bin/codecov -e TOXENV
  74. install: travis_retry pip install -U tox | cat
  75. script: tox -v -- -v
  76. notifications:
  77. irc:
  78. channels:
  79. - "chat.freenode.net#celery"
  80. on_success: change
  81. on_failure: change
  82. services:
  83. - rabbitmq
  84. - redis