mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-07-04 14:52:13 +02:00
Compare commits
2 Commits
faster_ci
...
e95a8b6e18
Author | SHA1 | Date | |
---|---|---|---|
e95a8b6e18
|
|||
635adf1360
|
@ -1,3 +0,0 @@
|
|||||||
skip_list:
|
|
||||||
- command-instead-of-shell # Use shell only when shell functionality is required
|
|
||||||
- experimental # all rules tagged as experimental
|
|
@ -10,22 +10,50 @@ variables:
|
|||||||
# Debian Buster
|
# Debian Buster
|
||||||
py37-django22:
|
py37-django22:
|
||||||
stage: test
|
stage: test
|
||||||
image: otthorn/nk20_ci_37
|
image: debian:buster-backports
|
||||||
|
before_script:
|
||||||
|
- >
|
||||||
|
apt-get update &&
|
||||||
|
apt-get install --no-install-recommends -t buster-backports -y
|
||||||
|
python3-django python3-django-crispy-forms
|
||||||
|
python3-django-extensions python3-django-filters python3-django-polymorphic
|
||||||
|
python3-djangorestframework python3-django-oauth-toolkit python3-psycopg2 python3-pil
|
||||||
|
python3-babel python3-lockfile python3-pip python3-phonenumbers python3-memcache
|
||||||
|
python3-bs4 python3-setuptools tox texlive-xetex
|
||||||
script: tox -e py37-django22
|
script: tox -e py37-django22
|
||||||
|
|
||||||
# Ubuntu 20.04
|
# Ubuntu 20.04
|
||||||
py38-django22:
|
py38-django22:
|
||||||
stage: test
|
stage: test
|
||||||
image: otthorn/nk20_ci_38
|
image: ubuntu:20.04
|
||||||
|
before_script:
|
||||||
|
# Fix tzdata prompt
|
||||||
|
- ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime && echo Europe/Paris > /etc/timezone
|
||||||
|
- >
|
||||||
|
apt-get update &&
|
||||||
|
apt-get install --no-install-recommends -y
|
||||||
|
python3-django python3-django-crispy-forms
|
||||||
|
python3-django-extensions python3-django-filters python3-django-polymorphic
|
||||||
|
python3-djangorestframework python3-django-oauth-toolkit python3-psycopg2 python3-pil
|
||||||
|
python3-babel python3-lockfile python3-pip python3-phonenumbers python3-memcache
|
||||||
|
python3-bs4 python3-setuptools tox texlive-xetex
|
||||||
script: tox -e py38-django22
|
script: tox -e py38-django22
|
||||||
|
|
||||||
# Debian Bullseye
|
# Debian Bullseye
|
||||||
py39-django22:
|
py39-django22:
|
||||||
stage: test
|
stage: test
|
||||||
image: otthorn/nk20_ci_39
|
image: debian:bullseye
|
||||||
|
before_script:
|
||||||
|
- >
|
||||||
|
apt-get update &&
|
||||||
|
apt-get install --no-install-recommends -y
|
||||||
|
python3-django python3-django-crispy-forms
|
||||||
|
python3-django-extensions python3-django-filters python3-django-polymorphic
|
||||||
|
python3-djangorestframework python3-django-oauth-toolkit python3-psycopg2 python3-pil
|
||||||
|
python3-babel python3-lockfile python3-pip python3-phonenumbers python3-memcache
|
||||||
|
python3-bs4 python3-setuptools tox texlive-xetex
|
||||||
script: tox -e py39-django22
|
script: tox -e py39-django22
|
||||||
|
|
||||||
# Tox linter
|
|
||||||
linters:
|
linters:
|
||||||
stage: quality-assurance
|
stage: quality-assurance
|
||||||
image: debian:buster-backports
|
image: debian:buster-backports
|
||||||
@ -36,20 +64,6 @@ linters:
|
|||||||
# Be nice to new contributors, but please use `tox`
|
# Be nice to new contributors, but please use `tox`
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
# Ansible linter
|
|
||||||
ansible-linter:
|
|
||||||
stage: quality-assurance
|
|
||||||
image: otthorn/nk20_ci_ansiblelint
|
|
||||||
script: ansible-lint ansible/
|
|
||||||
|
|
||||||
# Docker linter
|
|
||||||
docker-linter:
|
|
||||||
stage: quality-assurance
|
|
||||||
image: hadolint/hadolint
|
|
||||||
script:
|
|
||||||
- hadolint -c .hadolint Dockerfile
|
|
||||||
- hadolint -c .hadolint docker_ci/Dockerfile.*
|
|
||||||
|
|
||||||
# Compile documentation
|
# Compile documentation
|
||||||
documentation:
|
documentation:
|
||||||
stage: docs
|
stage: docs
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
ignored:
|
|
||||||
- DL3008 # Do not force to pin version in apt (Debian)
|
|
||||||
- DL3013 # Do not force to pin version in pip (PyPI)
|
|
||||||
- DL3018 # Do not force to pin version in apk (Alpine)
|
|
15
apps/member/auth.py
Normal file
15
apps/member/auth.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
from cas_server.auth import DjangoAuthUser # pragma: no cover
|
||||||
|
|
||||||
|
from note.models import Alias
|
||||||
|
|
||||||
|
|
||||||
|
class CustomAuthUser(DjangoAuthUser): # pragma: no cover
|
||||||
|
"""
|
||||||
|
Override Django Auth User model to define a custom Matrix username.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def attributs(self):
|
||||||
|
d = super().attributs()
|
||||||
|
if self.user:
|
||||||
|
d["normalized_name"] = Alias.normalize(self.user.username)
|
||||||
|
return d
|
@ -1,18 +0,0 @@
|
|||||||
FROM debian:buster-backports
|
|
||||||
|
|
||||||
LABEL maintainer="otthorn@crans.org"
|
|
||||||
LABEL description="Debian Buster backports image with django and tox \
|
|
||||||
installed for testing purposes"
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install --no-install-recommends -t buster-backports -y \
|
|
||||||
python3-django python3-django-crispy-forms \
|
|
||||||
python3-django-extensions python3-django-filters \
|
|
||||||
python3-django-polymorphic \
|
|
||||||
python3-djangorestframework python3-django-oauth-toolkit \
|
|
||||||
python3-psycopg2 python3-pil \
|
|
||||||
python3-babel python3-lockfile python3-pip python3-phonenumbers \
|
|
||||||
python3-memcache \
|
|
||||||
python3-bs4 python3-setuptools tox texlive-xetex \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
@ -1,22 +0,0 @@
|
|||||||
FROM ubuntu:20.04
|
|
||||||
|
|
||||||
LABEL maintainer="otthorn@crans.org"
|
|
||||||
LABEL description="Ubuntu 20.04 image with django and tox \
|
|
||||||
installed for testing purposes"
|
|
||||||
|
|
||||||
# fix tzdata prompt
|
|
||||||
RUN ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime && echo Europe/Paris > /etc/timezone
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install --no-install-recommends -y \
|
|
||||||
python3-django python3-django-crispy-forms \
|
|
||||||
python3-django-extensions python3-django-filters \
|
|
||||||
python3-django-polymorphic \
|
|
||||||
python3-djangorestframework python3-django-oauth-toolkit \
|
|
||||||
python3-psycopg2 python3-pil \
|
|
||||||
python3-babel python3-lockfile python3-pip python3-phonenumbers \
|
|
||||||
python3-memcache \
|
|
||||||
python3-bs4 python3-setuptools tox texlive-xetex \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
FROM debian:bullseye
|
|
||||||
|
|
||||||
LABEL maintainer="otthorn@crans.org"
|
|
||||||
LABEL description="Debian Bulleye image with django and tox \
|
|
||||||
installed for testing purposes"
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install --no-install-recommends -y \
|
|
||||||
python3-django python3-django-crispy-forms \
|
|
||||||
python3-django-extensions python3-django-filters \
|
|
||||||
python3-django-polymorphic \
|
|
||||||
python3-djangorestframework python3-django-oauth-toolkit \
|
|
||||||
python3-psycopg2 python3-pil \
|
|
||||||
python3-babel python3-lockfile python3-pip python3-phonenumbers \
|
|
||||||
python3-memcache \
|
|
||||||
python3-bs4 python3-setuptools tox texlive-xetex \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
@ -1,10 +0,0 @@
|
|||||||
FROM python:3.9-alpine
|
|
||||||
|
|
||||||
LABEL maintainer="otthorn@crans.org"
|
|
||||||
LABEL description="Alpine image with ansible-lint and yamllint \
|
|
||||||
installed for linting purposes"
|
|
||||||
|
|
||||||
RUN apk add --no-cache gcc musl-dev python3-dev libffi-dev openssl-dev cargo
|
|
||||||
RUN pip install --no-cache-dir "yamllint>=1.26.0,<2.0"
|
|
||||||
RUN pip install --no-cache-dir "ansible-lint==5.0.0"
|
|
||||||
RUN pip install --no-cache-dir "ansible>=2.10,<2.11"
|
|
@ -1,8 +0,0 @@
|
|||||||
FROM alpine:3.13
|
|
||||||
|
|
||||||
LABEL maintainer="otthorn@crans.org"
|
|
||||||
LABEL description="Alpine image with tox \
|
|
||||||
installed for linting purposes"
|
|
||||||
|
|
||||||
RUN apk --no-cache add py3-pip=20.3.4-r0
|
|
||||||
RUN pip install --no-cache-dir tox==3.22.0
|
|
@ -1,21 +0,0 @@
|
|||||||
# Docker CI
|
|
||||||
|
|
||||||
Ce dossier contient les images docker à construire pour la CI. L'idée est
|
|
||||||
d'avoir une image pré-construire, au dessus laquel il y a besoin de faire
|
|
||||||
tourner uniquement les commandes qui nous intéresse. Cela permet notamment de
|
|
||||||
réduire drastiquement le temps que nécessite chaque test car seul la dernière
|
|
||||||
couche (layer) de l'image a besoin d'etre éxécuter.
|
|
||||||
|
|
||||||
## Build les images
|
|
||||||
|
|
||||||
Pour build les images il suffit de lancer les commandes suivantes
|
|
||||||
|
|
||||||
```
|
|
||||||
cd docker_ci/
|
|
||||||
docker build -t nk20_ci_37 -f Dockerfile.37 .
|
|
||||||
docker build -t nk20_ci_38 -f Dockerfile.38 .
|
|
||||||
docker build -t nk20_ci_39 -f Dockerfile.39 .
|
|
||||||
```
|
|
||||||
|
|
||||||
Elles sont acutellement build et disponible sur dockerhub
|
|
||||||
https://hub.docker.com/otthorn/nk20_ci_37
|
|
@ -52,3 +52,9 @@ if "rest_framework" in settings.INSTALLED_APPS:
|
|||||||
from rest_framework.authtoken.admin import *
|
from rest_framework.authtoken.admin import *
|
||||||
from rest_framework.authtoken.models import *
|
from rest_framework.authtoken.models import *
|
||||||
admin_site.register(Token, TokenAdmin)
|
admin_site.register(Token, TokenAdmin)
|
||||||
|
|
||||||
|
if "cas_server" in settings.INSTALLED_APPS:
|
||||||
|
from cas_server.admin import *
|
||||||
|
from cas_server.models import *
|
||||||
|
admin_site.register(ServicePattern, ServicePatternAdmin)
|
||||||
|
admin_site.register(FederatedIendityProvider, FederatedIendityProviderAdmin)
|
||||||
|
@ -273,3 +273,6 @@ PIC_RATIO = 1
|
|||||||
# Custom phone number format
|
# Custom phone number format
|
||||||
PHONENUMBER_DB_FORMAT = 'NATIONAL'
|
PHONENUMBER_DB_FORMAT = 'NATIONAL'
|
||||||
PHONENUMBER_DEFAULT_REGION = 'FR'
|
PHONENUMBER_DEFAULT_REGION = 'FR'
|
||||||
|
|
||||||
|
# We add custom information to CAS, in order to give a normalized name to other services
|
||||||
|
CAS_AUTH_CLASS = 'member.auth.CustomAuthUser'
|
||||||
|
@ -45,6 +45,11 @@ if "oauth2_provider" in settings.INSTALLED_APPS:
|
|||||||
path('o/', include('oauth2_provider.urls', namespace='oauth2_provider'))
|
path('o/', include('oauth2_provider.urls', namespace='oauth2_provider'))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if "cas_server" in settings.INSTALLED_APPS:
|
||||||
|
urlpatterns.append(
|
||||||
|
path('cas/', include('cas_server.urls', namespace='cas_server'))
|
||||||
|
)
|
||||||
|
|
||||||
if "debug_toolbar" in settings.INSTALLED_APPS:
|
if "debug_toolbar" in settings.INSTALLED_APPS:
|
||||||
import debug_toolbar
|
import debug_toolbar
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
beautifulsoup4~=4.7.1
|
beautifulsoup4~=4.7.1
|
||||||
Django~=2.2.15
|
Django~=2.2.15
|
||||||
django-bootstrap-datepicker-plus~=3.0.5
|
django-bootstrap-datepicker-plus~=3.0.5
|
||||||
|
django-cas-server~=1.2.0
|
||||||
django-colorfield~=0.3.2
|
django-colorfield~=0.3.2
|
||||||
django-crispy-forms~=1.7.2
|
django-crispy-forms~=1.7.2
|
||||||
django-extensions~=2.1.4
|
django-extensions~=2.1.4
|
||||||
|
Reference in New Issue
Block a user