| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- language: python
- cache:
- directories:
- - "$HOME/.cache/pip"
- - "$TRAVIS_BUILD_DIR/.tox"
- os:
- - linux
- matrix:
- fast_finish: true
- allow_failures:
- - os: osx
- include:
- - python: 3.6
- env: TOX_ENV=py36-aws
- - python: 3.6
- env: TOX_ENV=py36-azure
- - python: 3.6
- env: TOX_ENV=py36-gcp
- - python: 3.6
- env: TOX_ENV=py36-mock
- - python: 3.6
- env: TOX_ENV=py36-openstack
- env:
- global:
- - PYTHONUNBUFFERED=True
- - COVERALLS_PARALLEL=true
- before_install:
- - |
- case "$TRAVIS_EVENT_TYPE" in
- push|pull_request)
- # Check whether we need to run a test for this provider
- DOCS_REGEX='(\.rst$)|(^(docs))/'
- FILES_IN_CHANGESET="`git diff --name-only $TRAVIS_COMMIT_RANGE`"
- echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX" || {
- echo "Only docs were updated. Stopping build process."
- exit
- }
- echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX|(^(cloudbridge/cloud/providers))" || {
- echo "Only docs and providers were updated. Checking whether this provider was changed."
- # Extract env and provider from $TOXENV into $PYENV and $PROVIDER respectively
- IFS=- read PYENV PROVIDER <<< "$TOX_ENV"
- echo "$FILES_IN_CHANGESET" | grep -qE "^(cloudbridge/cloud/providers/$PROVIDER)" && {
- echo "This provider was affected by this changeset. Running tests."
- } || {
- echo "This provider was not affected by this changeset. Stopping build process."
- exit
- }
- }
- ;;
- *)
- echo "Build triggered through API or CRON job. Running regardless of changes."
- ;;
- esac
- install:
- - pip install -U pip
- - pip install -U setuptools
- - pip install "coverage<5"
- - pip install tox
- - pip install coveralls
- - pip install codecov
- script:
- - tox -e $TOX_ENV
- after_script:
- - |
- case "$TRAVIS_EVENT_TYPE" in
- push|pull_request)
- # Don't run coverage if tests or cloudbridge interface was not affected
- DOCS_REGEX='(\.rst$)|(^(docs))/'
- FILES_IN_CHANGESET="`git diff --name-only $TRAVIS_COMMIT_RANGE`"
- echo "$FILES_IN_CHANGESET" | grep -qvE "$DOCS_REGEX|(^(cloudbridge/cloud/providers))" && {
- coveralls; codecov;
- } || {
- echo "Only docs and providers were updated. Not running coverage."
- }
- ;;
- *)
- echo "Build triggered through API or CRON job. Running regardless of changes"
- coveralls; codecov;
- ;;
- esac
- notifications:
- webhooks: https://coveralls.io/webhook
|