mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	Compare commits
	
		
			26 Commits
		
	
	
		
			food_trace
			...
			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