From 11d4ee465959c62bcbd4cf24f0a3435a4e707d25 Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Sat, 15 Dec 2018 11:49:13 +0000 Subject: [PATCH] Rejig the requirements and update drone to latest spec. --- .drone.yml | 42 +++++++++++++++++------------------ config/settings/common.py | 13 ++++++----- config/settings/local.py | 19 ---------------- config/settings/production.py | 3 --- config/settings/test.py | 39 +------------------------------- env.example | 7 +++--- requirements/base.txt | 2 +- requirements/local.txt | 8 +------ requirements/test.txt | 15 +++++-------- 9 files changed, 40 insertions(+), 108 deletions(-) diff --git a/.drone.yml b/.drone.yml index c9a2d99..41eba50 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,16 +1,15 @@ -workspace: - base: /drone - path: src - -pipeline: - tests: - image: python:3.5 +kind: pipeline +name: default +steps: + - name: tests + image: python:3.6 environment: - - PYTHONUSERBASE=/drone/src/cache/packages - - POSTGRES_USER=mhackspace - - USE_DOCKER=yes - - DJANGO_SETTINGS_MODULE=config.settings.test + PYTHONUSERBASE: /drone/src/cache/packages + POSTGRES_USER: mhackspace + USE_DOCKER: yes + DJANGO_SETTINGS_MODULE: config.settings.test + BUCKET_URL: http://minio:9000 commands: - cp -n env.example .env - mkdir -p ./cache/packages ./cache/pip @@ -19,7 +18,7 @@ pipeline: - python manage.py collectstatic --no-input - python manage.py test mhackspace --keepdb --verbosity 2 - publish-test: + - name: publish-stage pull: True image: appleboy/drone-ssh host: stage.maidstone-hackspace.org.uk @@ -36,7 +35,7 @@ pipeline: - docker-compose -fstage.yml down --remove-orphans - docker-compose -fstage.yml up -d - publish-live: + - name: publish-live pull: True image: appleboy/drone-ssh user: root @@ -52,19 +51,18 @@ pipeline: event: [ tag ] services: - mailhog: + - name: mailhog image: mailhog/mailhog - node: + - name: node image: node:alpine commands: - - npm --version - - npm install + - npm --version + - npm install - bucket: + - name: minio image: minio/minio environment: - - MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE - - MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY - commands: - - minio server /data & + MINIO_ACCESS_KEY: AKIAIOSFODNN7EXAMPLE + MINIO_SECRET_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY + command: [ "server", "--config-dir=/tmp/minio", "/bucket/" ] diff --git a/config/settings/common.py b/config/settings/common.py index fb60be4..60366e4 100644 --- a/config/settings/common.py +++ b/config/settings/common.py @@ -198,7 +198,7 @@ EMAIL_BACKEND = env( ) EMAIL_PORT = 1025 EMAIL_HOST = env("EMAIL_HOST", default="mailhog") -MSG_PREFIX = env("EMAIL_HOST", default="MHT") +MSG_PREFIX = env("EMAIL_PREFIX", default="MHT") # MANAGER CONFIGURATION # ------------------------------------------------------------------------------ @@ -296,14 +296,17 @@ STATICFILES_FINDERS = ( AWS_AUTO_CREATE_BUCKET = True AWS_DEFAULT_ACL = "public-read" -AWS_S3_SECURE_URLS = False +AWS_S3_ENDPOINT_URL = env('BUCKET_URL', default="http://127.0.0.1:9000") AWS_ACCESS_KEY_ID = env('BUCKET_ACCESS_KEY') AWS_SECRET_ACCESS_KEY = env('BUCKET_SECRET_KEY') -AWS_STORAGE_BUCKET_NAME = "mhackspace-local" +AWS_STORAGE_BUCKET_NAME = env('BUCKET_NAME', default="mhackspace-local") AWS_S3_OBJECT_PARAMETERS = {"CacheControl": "max-age=86400"} -AWS_LOCATION = "dev" +AWS_LOCATION = "static" AWS_S3_SECURE_URLS = True +STATIC_URL = '%s/%s/%s/' % (AWS_S3_ENDPOINT_URL, AWS_STORAGE_BUCKET_NAME, AWS_LOCATION) + + # MEDIA CONFIGURATION # ------------------------------------------------------------------------------ # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-root @@ -621,4 +624,4 @@ ST_TESTS_RATELIMIT_NEVER_EXPIRE = False ST_BASE_DIR = os.path.dirname(__file__) # ST is Spirit forum software config -RFID_SECRET = env("RFID_SECRET") \ No newline at end of file +RFID_SECRET = env("RFID_SECRET") diff --git a/config/settings/local.py b/config/settings/local.py index 0781e92..98b42f8 100644 --- a/config/settings/local.py +++ b/config/settings/local.py @@ -4,11 +4,7 @@ import socket import os from .common import * # noqa -DEBUG = env.bool('DJANGO_DEBUG', default=True) -DEBUG = True -TEMPLATES[0]['OPTIONS']['debug'] = DEBUG -# ALLOWED_HOSTS = ['*'] # INTERNAL_IPS = ['127.0.0.1', '10.0.2.2', '172.22.0.9', '192.168.1.113', '172.22.0.4', '0.0.0.0'] # tricks to have debug toolbar when developing with docker if os.environ.get('USE_DOCKER') == 'yes': @@ -107,21 +103,6 @@ LOGGING = { PAYMENT_PROVIDERS['gocardless']['redirect_url'] = 'http://127.0.0.1:8180' -TEMPLATE_DEBUG = True - -AWS_S3_SECURE_URLS = False -AWS_ACCESS_KEY_ID = env('BUCKET_ACCESS_KEY') -AWS_SECRET_ACCESS_KEY = env('BUCKET_SECRET_KEY') -AWS_STORAGE_BUCKET_NAME = 'mhackspace-local' -AWS_S3_ENDPOINT_URL = 'http://%s:9000' % socket.gethostbyname('bucket') -AWS_S3_OBJECT_PARAMETERS = { - 'CacheControl': 'max-age=86400', -} -AWS_LOCATION = 'dev' -AWS_S3_SECURE_URLS = True -STATIC_URL = '%s/%s/' % (AWS_S3_ENDPOINT_URL, AWS_STORAGE_BUCKET_NAME) - - # COMPRESSOR # ------------------------------------------------------------------------------ diff --git a/config/settings/production.py b/config/settings/production.py index c657d0e..62f4476 100644 --- a/config/settings/production.py +++ b/config/settings/production.py @@ -181,9 +181,6 @@ AWS_HEADERS = { } AWS_S3_SECURE_URLS = True -AWS_ACCESS_KEY_ID = env('BUCKET_ACCESS_KEY') -AWS_SECRET_ACCESS_KEY = env('BUCKET_SECRET_KEY') -AWS_STORAGE_BUCKET_NAME = 'mhackspace' AWS_S3_ENDPOINT_URL = 'https://ams3.digitaloceanspaces.com' AWS_S3_OBJECT_PARAMETERS = { 'CacheControl': 'max-age=86400', diff --git a/config/settings/test.py b/config/settings/test.py index f45bef3..e07b593 100644 --- a/config/settings/test.py +++ b/config/settings/test.py @@ -7,19 +7,6 @@ Test settings from .common import * # noqa - -# DEBUG -# ------------------------------------------------------------------------------ -# Turn debug off so tests run faster -DEBUG = False -TEMPLATES[0]['OPTIONS']['debug'] = False - -# SECRET CONFIGURATION -# ------------------------------------------------------------------------------ -# See: https://docs.djangoproject.com/en/dev/ref/settings/#secret-key -# Note: This key only used for development and testing. -SECRET_KEY = env('DJANGO_SECRET_KEY', default='CHANGEME!!!') - # Mail settings # ------------------------------------------------------------------------------ EMAIL_HOST = 'localhost' @@ -29,35 +16,10 @@ EMAIL_PORT = 1025 # for unit testing purposes EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend' -# CACHING -# ------------------------------------------------------------------------------ -# Speed advantages of in-memory caching without having to run Memcached -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - 'LOCATION': '' - }, - 'st_rate_limit': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - 'LOCATION': 'spirit_rl_cache', - 'TIMEOUT': None - } -} - # TESTING # ------------------------------------------------------------------------------ TEST_RUNNER = 'django.test.runner.DiscoverRunner' - -# PASSWORD HASHING -# ------------------------------------------------------------------------------ -# Use fast password hasher so tests run faster -PASSWORD_HASHERS = ( - 'django.contrib.auth.hashers.MD5PasswordHasher', -) - -# TEMPLATE LOADERS -# ------------------------------------------------------------------------------ # Keep templates in memory so tests run faster TEMPLATES[0]['OPTIONS']['loaders'] = [ ('django.template.loaders.cached.Loader', [ @@ -72,3 +34,4 @@ DATABASES = { 'NAME': os.path.join(str(ROOT_DIR), 'cache/test_database.db'), } } + diff --git a/env.example b/env.example index b47e6c2..1b456cb 100644 --- a/env.example +++ b/env.example @@ -13,12 +13,13 @@ DATABASE_URL=postgres://mhackspace:mysecretpass@postgres:5432/mhackspace # General settings DJANGO_ADMIN_URL=admin -DJANGO_SETTINGS_MODULE=config.settings.local +DJANGO_SETTINGS_MODULE=config.settings.test DJANGO_SECRET_KEY=iud%k99yw!e+z+c12uatugbn=&lsdyd(t_byk9)@dp@lj6*c*n DJANGO_ALLOWED_HOSTS=.maidstone-hackspace.org.uk -# AWS Settings -BUCKET_NAME=local +# AMS / AWS / MINIO bucket settings +BUCKET_URL=http://bucket:9000 +BUCKET_NAME=mhackspace-local BUCKET_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE BUCKET_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY diff --git a/requirements/base.txt b/requirements/base.txt index 2242f43..24a2237 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -48,7 +48,7 @@ pytz==2018.7 django-redis==4.10.0 redis<=2.10.6 -rcssmin==1.0.62.1.3 +rcssmin==1.0.6 django-compressor==2.2 #fix for use with s3 buckets merged in master, so next release we can remove this diff --git a/requirements/local.txt b/requirements/local.txt index cbf08ea..aa40c9a 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -1,15 +1,9 @@ # Local development dependencies go here --r base.txt -coverage==4.4.1 -django-coverage-plugin==1.5.0 +-r test.txt Sphinx==1.5.5 -django-test-plus==1.0.18 -factory-boy==2.8.1 django-debug-toolbar==1.8 # improved REPL ipdb==0.10.3 -pytest-django==3.1.2 -pytest-sugar==0.8.0 diff --git a/requirements/test.txt b/requirements/test.txt index 76842aa..c4dc10f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,20 +1,15 @@ # Test dependencies go here. -r base.txt - +# linting +flake8==3.3.0 # pyup: != 2.6.0 coverage==4.4.1 -flake8==3.3.0 # pyup: != 2.6.0 -django-test-plus==1.0.18 factory-boy==2.8.1 +django-coverage-plugin==1.5.0 +django-test-plus==1.1.1 + # pytest pytest-django==3.1.2 pytest-sugar==0.8.0 - -django-test-plus==1.0.18 -# improved REPL -ipdb==0.10.3 - -pytest-django==3.1.2 -pytest-sugar==0.8.0