69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
image: python:3.5
|
|
|
|
services:
|
|
- postgres:latest
|
|
|
|
variables:
|
|
POSTGRES_DB: ci
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
|
|
stages:
|
|
- test
|
|
- lint
|
|
- deploy
|
|
|
|
test:
|
|
stage: test
|
|
variables:
|
|
DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/$POSTGRES_DB"
|
|
script:
|
|
- python -V
|
|
- pip install -r requirements.txt
|
|
- cp sikweb/settings-sample.py sikweb/default_settings.py
|
|
- cp sikweb/.ci-settings.py sikweb/settings.py
|
|
- python manage.py migrate --noinput
|
|
- python manage.py createdefaultadmin
|
|
- python manage.py test
|
|
|
|
pep8:
|
|
stage: lint
|
|
script:
|
|
- pip install pep8
|
|
- pep8 --config=setup.cfg --count .
|
|
|
|
eslint:
|
|
image: node:7.10.0
|
|
stage: lint
|
|
script:
|
|
- npm install -g eslint
|
|
- eslint .
|
|
|
|
deploy:
|
|
stage: deploy
|
|
environment:
|
|
name: dev
|
|
url: http://web.sik.party
|
|
only:
|
|
- develop
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
services:
|
|
- docker:dind
|
|
before_script:
|
|
- docker info
|
|
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
|
|
- eval $(ssh-agent -s)
|
|
- ssh-add <(echo "$SSH_PRIVATE_KEY")
|
|
- mkdir -p ~/.ssh
|
|
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
|
|
- curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
|
|
- chmod a+x /usr/local/bin/docker-compose
|
|
script:
|
|
- python -V
|
|
- docker-compose build
|
|
- docker-compose push
|
|
- scp docker-compose.yaml $SSH_USER@web.sik.party:~/deployment/
|
|
- ssh $SSH_USER@web.sik.party 'cd deployment && docker-compose pull web20:latest && docker-compose up -d'
|
|
|