mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	Compare commits
	
		
			26 Commits
		
	
	
		
			be168c5ada
			...
			faster_ci
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					3eed93e346 | ||
| 
						 | 
					4da523a1ba | ||
| 
						 | 
					e74ff54468 | ||
| 
						 | 
					2e49c9ffbd | ||
| 
						 | 
					d20a1038a8 | ||
| 
						 | 
					f6b711bb1b | ||
| 
						 | 
					893d87a9e1 | ||
| 
						 | 
					9f3323c73e | ||
| 
						 | 
					c57f81b920 | ||
| 
						 | 
					0636d84286 | ||
| 
						 | 
					ed06901fae | ||
| 
						 | 
					28932f316b | ||
| 
						 | 
					9b50ba722c | ||
| 
						 | 
					3e3e61d23f | ||
| 
						 | 
					1129815ca3 | ||
| 
						 | 
					c13172d3ff | ||
| 
						 | 
					fcc4121225 | ||
| 
						 | 
					a06f355559 | ||
| 
						 | 
					08df5fcccd | ||
| 
						 | 
					b6c0f9758d | ||
| 
						 | 
					a23093851f | ||
| 
						 | 
					d803ab5ec2 | ||
| 
						 | 
					d7a537b6b5 | ||
| 
						 | 
					0941ee954d | ||
| 
						 | 
					fd11d96d95 | ||
| 
						 | 
					4bfc057454 | 
							
								
								
									
										3
									
								
								.ansible-lint
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.ansible-lint
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					skip_list:
 | 
				
			||||||
 | 
					  - command-instead-of-shell  # Use shell only when shell functionality is required
 | 
				
			||||||
 | 
					  - experimental  # all rules tagged as experimental
 | 
				
			||||||
@@ -10,50 +10,22 @@ variables:
 | 
				
			|||||||
# Debian Buster
 | 
					# Debian Buster
 | 
				
			||||||
py37-django22:
 | 
					py37-django22:
 | 
				
			||||||
  stage: test
 | 
					  stage: test
 | 
				
			||||||
  image: debian:buster-backports
 | 
					  image: otthorn/nk20_ci_37
 | 
				
			||||||
  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: ubuntu:20.04
 | 
					  image: otthorn/nk20_ci_38
 | 
				
			||||||
  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: debian:bullseye
 | 
					  image: otthorn/nk20_ci_39
 | 
				
			||||||
  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
 | 
				
			||||||
@@ -64,6 +36,20 @@ 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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								.hadolint
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.hadolint
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					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)
 | 
				
			||||||
							
								
								
									
										18
									
								
								docker_ci/Dockerfile.37
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docker_ci/Dockerfile.37
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					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/*
 | 
				
			||||||
							
								
								
									
										22
									
								
								docker_ci/Dockerfile.38
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								docker_ci/Dockerfile.38
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					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/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								docker_ci/Dockerfile.39
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docker_ci/Dockerfile.39
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					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/*
 | 
				
			||||||
							
								
								
									
										10
									
								
								docker_ci/Dockerfile.ansiblelint
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docker_ci/Dockerfile.ansiblelint
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					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"
 | 
				
			||||||
							
								
								
									
										8
									
								
								docker_ci/Dockerfile.tox
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								docker_ci/Dockerfile.tox
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										21
									
								
								docker_ci/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								docker_ci/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					# 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
 | 
				
			||||||
		Reference in New Issue
	
	Block a user