forked from nspo/pybarsys
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
28 lines (28 loc) · 1.73 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
language: python
services:
- docker
python:
- "3.6"
before_install:
- export REPO=$DOCKER_USERNAME/pybarsys
- export CLEANED_BRANCH_NAME=$(echo $TRAVIS_BRANCH | sed 's/[^a-zA-Z0-9]/_/g')
- export TAG_BRANCH=`if [ “$TRAVIS_BRANCH” = “master” ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then echo “latest”; else echo $CLEANED_BRANCH_NAME ; fi` # master (non PR): latest, feature/docker: feature_docker
- export TAG_BRANCH_COMMIT=$CLEANED_BRANCH_NAME-${TRAVIS_COMMIT::6} # master-abc123, feature_docker-abc123
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export TAG_BRANCH=$TAG_BRANCH-pr-$TRAVIS_PULL_REQUEST; export TAG_BRANCH_COMMIT=$TAG_BRANCH_COMMIT-pr-$TRAVIS_PULL_REQUEST; fi # append -pr-123 if it is only a PR into branch
- echo $REPO:$TAG_BRANCH:$TAG_BRANCH_COMMIT
install:
- sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- pip3 install -r requirements.txt
- cp .env.example .env
- touch db.sqlite3 && chmod 666 db.sqlite3 # create empty file where DB should be so it can be mounted into container
script:
- python3 manage.py test # unit tests
- sudo docker-compose -f docker-compose.yml -f docker-compose.build.yml build
- sudo docker-compose up&
- scripts/try_for_60s.sh bash -c 'curl -sSL localhost | grep "There are no active users"' # check if pybarsys is running
- curl -sSL localhost/static/barsys/style.css | grep media # check whether static files are served correctly
after_success:
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker build -t $REPO:$TAG_BRANCH -t $REPO:$TAG_BRANCH_COMMIT .
- docker push $REPO:$TAG_BRANCH
- docker push $REPO:$TAG_BRANCH_COMMIT