Permalink
Find file Copy path
269 lines (245 sloc) 8.93 KB
dist: trusty
sudo: required
group: deprecated-2017Q4
language: python
python: 2.7
branches:
only:
- master
cache:
yarn: true
directories:
- "${HOME}/virtualenv/python$(python -c 'import platform; print(platform.python_version())')"
- "$NODE_DIR"
- node_modules
- "${HOME}/google-cloud-sdk"
addons:
apt:
update: true
packages:
- libxmlsec1-dev
- libgeoip-dev
chrome: stable
env:
global:
- NODE_ENV=development
- PIP_DISABLE_PIP_VERSION_CHECK=on
- SENTRY_LIGHT_BUILD=1
- SENTRY_SKIP_BACKEND_VALIDATION=1
- SOUTH_TESTS_MIGRATE=1
- DJANGO_VERSION=">=1.6.11,<1.7"
# node's version is pinned by .nvmrc and is autodetected by `nvm install`.
- NODE_DIR="${HOME}/.nvm/versions/node/v$(< .nvmrc)"
- YARN_VERSION="1.3.2"
script:
- make travis-lint-$TEST_SUITE
- make travis-test-$TEST_SUITE
- make travis-scan-$TEST_SUITE
# installing dependencies for after_* steps here ensures they get cached
# since those steps execute after travis runs `store build cache`
- pip install codecov
- npm install -g @zeus-ci/cli
after_success:
- codecov -e TEST_SUITE
after_failure:
- dmesg | tail -n 100
after_script:
- zeus upload -t "text/xml+xunit" .artifacts/*junit.xml
- zeus upload -t "text/xml+coverage" .artifacts/*coverage.xml
- zeus upload -t "text/xml+coverage" .artifacts/coverage/cobertura-coverage.xml
- zeus upload -t "text/html+pytest" .artifacts/*pytest.html
- zeus upload -t "text/plain+pycodestyle" .artifacts/*pycodestyle.log
- zeus upload -t "text/xml+checkstyle" .artifacts/*checkstyle.xml
- zeus upload -t "application/webpack-stats+json" .artifacts/*webpack-stats.json
# each job in the matrix inherits `env/global` and uses everything above,
# but custom `services`, `before_install`, `install`, and `before_script` directives
# may be defined to define and setup individual job environments with more precision.
matrix:
fast_finish: true
include:
# only the sqlite suite runs riak tests
- python: 2.7
env: TEST_SUITE=sqlite DB=sqlite
services:
- memcached
- riak
- redis-server
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
- python: 2.7
env: TEST_SUITE=postgres DB=postgres
services:
- memcached
- redis-server
- postgresql
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
before_script:
- psql -c 'create database sentry;' -U postgres
- python: 2.7
env:
- TEST_SUITE=postgres DB=postgres
- SENTRY_USE_RUST_NORMALIZER=true
services:
- memcached
- redis-server
- postgresql
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
before_script:
- psql -c 'create database sentry;' -U postgres
- python: 2.7
env: TEST_SUITE=mysql DB=mysql
services:
- memcached
- mysql
- redis-server
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
# 1.3.14 causes test failures. Pinning to 1.3.13 for now, hopefully
# a later release resolves this.
- pip install mysqlclient==1.3.13
before_script:
- mysql -u root -e 'create database sentry;'
- python: 2.7
env: TEST_SUITE=acceptance
services:
- memcached
- redis-server
- postgresql
before_install:
- find "$NODE_DIR" -type d -empty -delete
- nvm install
- npm install -g "yarn@${YARN_VERSION}"
- docker run -d --network host --name clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server:18.14.9
- docker run -d --network host --name snuba --env SNUBA_SETTINGS=test --env CLICKHOUSE_SERVER=localhost:9000 getsentry/snuba
- docker ps -a
install:
- yarn install --pure-lockfile
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
- wget -N "http://chromedriver.storage.googleapis.com/$(curl https://chromedriver.storage.googleapis.com/LATEST_RELEASE)/chromedriver_linux64.zip" -P ~/
- unzip ~/chromedriver_linux64.zip -d ~/
- rm ~/chromedriver_linux64.zip
- sudo install -m755 ~/chromedriver /usr/local/bin/
before_script:
- psql -c 'create database sentry;' -U postgres
- python: 2.7
env: TEST_SUITE=js
before_install:
- find "$NODE_DIR" -type d -empty -delete
- nvm install
- npm install -g "yarn@${YARN_VERSION}"
install:
- yarn install --pure-lockfile
- python: 2.7
env: TEST_SUITE=cli
services:
- postgresql
- redis-server
install:
- python setup.py install_egg_info
- pip install -e .
before_script:
- psql -c 'create database sentry;' -U postgres
- python: 2.7
env: TEST_SUITE=dist
before_install:
- find "$NODE_DIR" -type d -empty -delete
- nvm install
- npm install -g "yarn@${YARN_VERSION}"
- python: 2.7
env: SENTRY_TAGSTORE=sentry.tagstore.v2.V2TagStorage TEST_SUITE=postgres DB=postgres
services:
- memcached
- redis-server
- postgresql
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
before_script:
- psql -c 'create database sentry;' -U postgres
# django 1.8 compatibility
- python: 2.7
env: TEST_SUITE=postgres DJANGO_VERSION=">=1.8,<1.9"
services:
- memcached
- redis-server
- postgresql
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
before_script:
- psql -c 'create database sentry;' -U postgres
# django 1.8 compatibility with migrations
- python: 2.7
env: TEST_SUITE=postgres DJANGO_VERSION=">=1.8,<1.9" SOUTH_TESTS_MIGRATE=0
services:
- memcached
- redis-server
- postgresql
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
before_script:
- psql -c 'create database sentry;' -U postgres
# snuba in testing - allowed to fail
- python: 2.7
env: TEST_SUITE=snuba SENTRY_TAGSTORE=sentry.tagstore.snuba.SnubaTagStorage SENTRY_ZOOKEEPER_HOSTS=localhost:2181 SENTRY_KAFKA_HOSTS=localhost:9092
services:
- docker
- memcached
- redis-server
- postgresql
before_install:
- docker run -d --network host --name zookeeper -e ZOOKEEPER_CLIENT_PORT=2181 confluentinc/cp-zookeeper:4.1.0
- docker run -d --network host --name kafka -e KAFKA_ZOOKEEPER_CONNECT=localhost:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 confluentinc/cp-kafka:4.1.0
- docker run -d --network host --name clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server:18.14.9
- docker run -d --network host --name snuba --env SNUBA_SETTINGS=test --env CLICKHOUSE_SERVER=localhost:9000 getsentry/snuba
- docker ps -a
install:
- python setup.py install_egg_info
- pip install -e ".[dev,tests,optional]"
- pip install confluent-kafka
before_script:
- psql -c 'create database sentry;' -U postgres
# Deploy 'storybook' (component & style guide) - allowed to fail
- language: node_js
env: STORYBOOK_BUILD=1
before_install:
# Decrypt the credentials we added to the repo using the key we added with the Travis command line tool
- openssl aes-256-cbc -K $encrypted_020be61ef175_key -iv $encrypted_020be61ef175_iv -in .travis/storybook-credentials.tar.gz.enc -out credentials.tar.gz -d
# If the SDK is not already cached, download it and unpack it
- if [ ! -d ${HOME}/google-cloud-sdk ]; then curl https://sdk.cloud.google.com | bash; fi
- tar -xzf credentials.tar.gz
# Use the decrypted service account credentials to authenticate the command line tool
- gcloud auth activate-service-account --key-file client-secret.json
- npm install -g "yarn@${YARN_VERSION}"
install:
- yarn install --pure-lockfile
- gcloud version
script: bash .travis/deploy-storybook.sh
after_success: skip
after_failure: skip
# jobs are defined in matrix/include
# to specify which jobs are allowed to fail, match the env exactly in matrix/allow_failures
allow_failures:
- language: node_js
env: STORYBOOK_BUILD=1
- language: python
env:
- TEST_SUITE=postgres DB=postgres
- SENTRY_USE_RUST_NORMALIZER=true
notifications:
webhooks:
urls:
- https://zeus.ci/hooks/fa079cf6-8e6b-11e7-9155-0a580a28081c/public/provider/travis/webhook
on_success: always
on_failure: always
on_start: always
on_cancel: always
on_error: always