mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 07:49:57 +01:00 
			
		
		
		
	Compare commits
	
		
			26 Commits
		
	
	
		
			f83f02b64e
			...
			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