Compare commits

...

6 Commits

29 changed files with 66 additions and 58 deletions

View File

@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.1.28-beta
current_version = 0.1.29-beta
tag = True
commit = True
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\-(?P<release>.*)

View File

@ -40,6 +40,7 @@ pylint:
stage: test
coverage:
script:
- python manage.py collectstatic --no-input
- coverage run manage.py test
- coverage report
stage: test
@ -55,7 +56,7 @@ package-docker:
before_script:
- echo "{\"auths\":{\"docker.$NEXUS_URL\":{\"auth\":\"$NEXUS_AUTH\"}}}" > /kaniko/.docker/config.json
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination docker.pkg.beryju.org/passbook:latest --destination docker.pkg.beryju.org/passbook:0.1.28-beta
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination docker.pkg.beryju.org/passbook:latest --destination docker.pkg.beryju.org/passbook:0.1.29-beta
stage: build
only:
- tags

View File

@ -3,7 +3,7 @@ from setuptools import setup
setup(
name='django-allauth-passbook',
version='0.1.28-beta',
version='0.1.29-beta',
description='passbook support for django-allauth',
# long_description='\n'.join(read_simple('docs/index.md')[2:]),
long_description_content_type='text/markdown',

View File

@ -18,7 +18,7 @@ tests_require = [
setup(
name='sentry-auth-passbook',
version='0.1.28-beta',
version='0.1.29-beta',
author='BeryJu.org',
author_email='support@beryju.org',
url='https://passbook.beryju.org',

10
debian/changelog vendored
View File

@ -1,3 +1,13 @@
passbook (0.1.29) stable; urgency=medium
* bump version: 0.1.27-beta -> 0.1.28-beta
* Add libpq-dev dependency so psycopg2 build works
* switch to whitenoise for static files
* replace cherrypy with daphne
* Run collectstatic before coverage, use autoreload on celery worker
-- Jens Langhammer <jens.langhammer@beryju.org> Thu, 11 Apr 2019 12:00:27 +0000
passbook (0.1.28) stable; urgency=medium
* bump version: 0.1.26-beta -> 0.1.27-beta

2
debian/control vendored
View File

@ -3,7 +3,7 @@ Section: admin
Priority: optional
Maintainer: BeryJu.org <support@beryju.org>
Uploaders: Jens Langhammer <jens@beryju.org>, BeryJu.org <support@beryju.org>
Build-Depends: debhelper (>= 10), dh-systemd (>= 1.5), dh-exec, wget, dh-exec, python3 (>= 3.5) | python3.6 | python3.7
Build-Depends: debhelper (>= 10), dh-systemd (>= 1.5), dh-exec, wget, dh-exec, python3 (>= 3.5) | python3.6 | python3.7, libpq-dev
Standards-Version: 3.9.6
Package: passbook

View File

@ -1,6 +1,6 @@
apiVersion: v1
appVersion: "0.1.28-beta"
appVersion: "0.1.29-beta"
description: A Helm chart for passbook.
name: passbook
version: "0.1.28-beta"
version: "0.1.29-beta"
icon: https://passbook.beryju.org/images/logo.png

View File

@ -29,7 +29,7 @@ spec:
image: "docker.pkg.beryju.org/passbook:{{ .Values.image.tag }}"
imagePullPolicy: IfNotPresent
command: ["/bin/sh","-c"]
args: ["./manage.py migrate && daphne -p 8000 passbook.core.asgi:application"]
args: ["./manage.py migrate && ./manage.py web"]
ports:
- name: http
containerPort: 8000

View File

@ -5,7 +5,7 @@
replicaCount: 1
image:
tag: 0.1.28-beta
tag: 0.1.29-beta
nameOverride: ""

View File

@ -1,2 +1,2 @@
"""passbook"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook admin"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook api"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook Application Security Gateway Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook audit Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook captcha_factor Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook core"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -2,11 +2,11 @@
from logging import getLogger
import cherrypy
from django.conf import settings
from daphne.cli import CommandLineInterface
from django.core.management.base import BaseCommand
from django.utils import autoreload
from passbook.core.wsgi import application
from passbook.lib.config import CONFIG
LOGGER = getLogger(__name__)
@ -15,20 +15,16 @@ class Command(BaseCommand):
"""Run CherryPy webserver"""
def handle(self, *args, **options):
"""passbook cherrypy server"""
config = settings.CHERRYPY_SERVER
config.update(**options)
cherrypy.config.update(config)
cherrypy.tree.graft(application, '/')
# Mount NullObject to serve static files
cherrypy.tree.mount(None, '/static', config={
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': settings.STATIC_ROOT,
'tools.expires.on': True,
'tools.expires.secs': 86400,
'tools.gzip.on': True,
}
})
cherrypy.engine.start()
cherrypy.engine.block()
"""passbook daphne server"""
autoreload.run_with_reloader(self.daphne_server)
def daphne_server(self):
"""Run daphne server within autoreload"""
autoreload.raise_last_exception()
with CONFIG.cd('web'):
CommandLineInterface().run([
'-p', str(CONFIG.get('port', 8000)),
'-b', CONFIG.get('listen', '0.0.0.0'), # nosec
'--access-log', '/dev/null',
'passbook.core.asgi:application'
])

View File

@ -3,6 +3,7 @@
from logging import getLogger
from django.core.management.base import BaseCommand
from django.utils import autoreload
from passbook.core.celery import CELERY_APP
@ -14,4 +15,9 @@ class Command(BaseCommand):
def handle(self, *args, **options):
"""celery worker"""
autoreload.run_with_reloader(self.celery_worker)
def celery_worker(self):
"""Run celery worker within autoreload"""
autoreload.raise_last_exception()
CELERY_APP.worker_main(['worker', '--autoscale=10,3', '-E', '-B'])

View File

@ -1,5 +1,4 @@
celery
cherrypy
colorlog
django-ipware
django-model-utils
@ -12,3 +11,4 @@ psycopg2
PyYAML
sentry-sdk
pip
whitenoise

View File

@ -121,6 +121,7 @@ CACHES = {
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'passbook.app_gw.middleware.ApplicationGatewayMiddleware',
'django.middleware.security.SecurityMiddleware',
@ -230,22 +231,11 @@ sentry_init(
send_default_pii=True
)
# CherryPY settings
with CONFIG.cd('web'):
CHERRYPY_SERVER = {
'server.socket_host': CONFIG.get('listen', '0.0.0.0'), # nosec
'server.socket_port': CONFIG.get('port', 8000),
'server.thread_pool': CONFIG.get('threads', 30),
'log.screen': False,
'log.access_file': '',
'log.error_file': '',
}
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
LOG_HANDLERS = ['console', 'syslog', 'file']
@ -323,6 +313,11 @@ with CONFIG.cd('log'):
'level': 'DEBUG',
'propagate': True,
},
'daphne': {
'handlers': LOG_HANDLERS,
'level': 'DEBUG',
'propagate': True,
}
}
}

View File

@ -1,2 +1,2 @@
"""passbook hibp_policy"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""Passbook ldap app Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook lib"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook oauth_client Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook oauth_provider Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook otp Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook password_expiry"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook saml_idp Header"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'

View File

@ -1,2 +1,2 @@
"""passbook suspicious_policy"""
__version__ = '0.1.28-beta'
__version__ = '0.1.29-beta'