mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-26 05:23:18 +01:00 
			
		
		
		
	Compare commits
	
		
			26 Commits
		
	
	
		
			5558341c8c
			...
			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 | ||||
| py37-django22: | ||||
|   stage: test | ||||
|   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 | ||||
|   image: otthorn/nk20_ci_37 | ||||
|   script: tox -e py37-django22 | ||||
|  | ||||
| # Ubuntu 20.04 | ||||
| py38-django22: | ||||
|   stage: test | ||||
|   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 | ||||
|   image: otthorn/nk20_ci_38 | ||||
|   script: tox -e py38-django22 | ||||
|  | ||||
| # Debian Bullseye | ||||
| py39-django22: | ||||
|   stage: test | ||||
|   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 | ||||
|   image: otthorn/nk20_ci_39 | ||||
|   script: tox -e py39-django22 | ||||
|  | ||||
| # Tox linter | ||||
| linters: | ||||
|   stage: quality-assurance | ||||
|   image: debian:buster-backports | ||||
| @@ -64,6 +36,20 @@ linters: | ||||
|   # Be nice to new contributors, but please use `tox` | ||||
|   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 | ||||
| documentation: | ||||
|   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