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 image: docker:latest environment: name: dev url: http://web.sik.party only: - develop 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'