-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
66 lines (55 loc) · 1.91 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
language: python
python:
- 3.6
cache:
pip: true
# Use container-based infrastructure
dist: trusty
sudo: required
services:
- postgresql
- docker
addons:
postgresql: '9.6'
env:
global:
- DJANGO_SETTINGS_MODULE=eventrack.settings.prod
- DATABASE_URL=postgres://postgres@localhost/test_db
- CFG_SECRET_KEY=iamnotsosecret
- CFG_ALLOWED_HOSTS=localhost
before_script:
- sudo apt-get install -y binutils libproj-dev gdal-bin libgeoip1 python-gdal
- sudo apt-get install -y postgresql-9.6-postgis-2.4
- psql -c 'create database test_db;' -U postgres
- psql -c 'create extension postgis;' -U postgres -d test_db
install:
- pip install -r requirements.txt
- pip install flake8
script:
# Code style
- flake8
# Check migrations and run tests
- python manage.py check
- python manage.py makemigrations --check
- python manage.py test
# Build a docker image
- docker build -t fedorselitsky/eventrack .
- docker images fedorselitsky/eventrack
# Push an image into the public docker registry
# Should only work on the master branch.
#
# Note that $TRAVIS_BRANCH for builds triggered by a pull request will have
# the name of the branch targeted by the pull request,
# so we also need to check $TRAVIS_PULL_REQUEST to prevent pushing
# on pull requests targeted to the master branch.
# See https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
#
# Another important note is thar we should run this as part of the "script"
# stage, because later stages (such as "after_script" and "after_success")
# do not affect the build result and we want to receive notifications,
# in case of failed attempts to push to the docker registry.
- >
if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
docker login -u "$DOCKER_HUB_USERNAME" -p "$DOCKER_HUB_PASSWORD";
docker push fedorselitsky/eventrack;
fi;