stages: - test - build - deploy job test python: script: - virtualenv --python=python3 env - source env/bin/activate - pip install django - pip install coverage - python setup.py develop - cp picampaign/settings.py.sample picampaign/settings.py - ${VIRTUAL_ENV}/bin/coverage run --source='.' manage.py test - ${VIRTUAL_ENV}/bin/coverage report --omit="${VIRTUAL_ENV}/*",'*__init__.py' stage: test tags: [preprod] only: - master job build: script: - virtualenv --python=python3 env - source env/bin/activate - pip install django - pip install coverage - python setup.py develop - cp picampaign/settings.py.sample picampaign/settings.py - python manage.py collectstatic --noinput - python manage.py makemessages --exclude env --locale fr - python manage.py makemessages --exclude env --locale en - python manage.py makemessages --exclude env --locale de artifacts: paths: - campaign/static - campaign/locale expire_in: 1 day stage: build tags: [preprod] only: - master job deploy preprod: environment: preprod variables: BASE_DIR: /srv/piphone/campaign script: - rsync -ruvC ./ ${BASE_DIR} - virtualenv --python=python3 ${BASE_DIR}/env - source ${BASE_DIR}/env/bin/activate - pip install django - pip install coverage - python /srv/piphone/campaign/setup.py install - python /srv/piphone/campaign/manage.py migrate - touch /srv/piphone/campaign.ready stage: deploy tags: [preprod] only: - master job deploy prod: environment: prod variables: BASE_DIR: /srv/piphone/campaign script: - rsync -ruvC ./ ${BASE_DIR} - virtualenv --python=python3 ${BASE_DIR}/env - source ${BASE_DIR}/env/bin/activate - pip install django - pip install coverage - python /srv/piphone/campaign/setup.py install - python /srv/piphone/campaign/manage.py migrate - touch /srv/piphone/campaign/ready stage: deploy tags: [piphone] only: - master when: manual