stages: - test - lint - publish - deploy test: image: python:3.5 stage: test services: - postgres:latest variables: POSTGRES_DB: ci POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres 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 pycodestyle: image: python:3.5 stage: lint script: - pip install pycodestyle - pycodestyle --config=setup.cfg --count . eslint: image: node:alpine stage: lint before_script: - npm install script: - npm run eslint remark: image: node:alpine stage: lint before_script: - npm install script: - npm run remark publish: stage: publish image: docker:latest only: - develop before_script: - docker info - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $REGISTRY_URL script: - docker build . -t "$IMAGE_NAME" - docker push "$IMAGE_NAME" deploy_dev: stage: deploy image: alpine:latest environment: name: dev url: http://web.sik.party:8000 only: - develop before_script: - pwd - apk add --update openssh - ssh -V - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' script: - scp docker-compose.yml $DEV_SSH_USER@$DEV_SSH_HOST:~/deployment/docker-compose.yml - scp .deploy_dev.sh $DEV_SSH_USER@$DEV_SSH_HOST:~/deployment/deploy_dev.sh - ssh $DEV_SSH_USER@$DEV_SSH_HOST "bash ~/deployment/deploy_dev.sh \"$IMAGE_NAME\"" deploy_production: stage: deploy image: alpine:latest environment: name: production url: https://sika.sahkoinsinoorikilta.fi when: manual only: - master before_script: - pwd - apk add --update openssh - ssh -V - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config script: - ssh $PROD_SSH_USER@$PROD_SSH_HOST "zsh ~/deploy.sh"