DevOps
GitLab
Gitlab
GitLab est une plateforme DevOps complète qui propose la gestion du code source, l’intégration continue (CI), le déploiement continu (CD), l’hébergement de pages statiques et de registres Docker privés.
Intégration continue avec Gitlab CI
GitLab CI permet d’automatiser les tests, la construction et le déploiement de vos applications via un fichier .gitlab-ci.yml
à la racine du dépôt.
Exemple minimal :
stages:
- test
test_job:
stage: test
script:
- echo "Lancement des tests"
- pytest
- Chaque
job
s’exécute dans un runner GitLab. - Les étapes (
stages
) définissent l’ordre d’exécution (ex : build, test, deploy). - Les variables d’environnement peuvent être définies dans l’interface GitLab ou dans le fichier YAML.
Déploiement continu de documentation avec Gitlab Pages
GitLab Pages permet d’héberger des sites statiques (documentation, blogs, etc.) directement depuis un dépôt GitLab.
Exemple de pipeline pour MkDocs :
pages:
image: python:3.11
stage: deploy
script:
- pip install mkdocs
- mkdocs build
- mv site public
artifacts:
paths:
- public
only:
- main
- Le dossier
public
est publié automatiquement. - L’URL du site est du type :
https://<namespace>.gitlab.io/<project>
Hébergement de livrables docker avec Gitlab Registry
GitLab propose un registre Docker privé intégré à chaque projet.
Exemple de pipeline pour builder et pousser une image :
build-image:
image: docker:latest
services:
- docker:dind
stage: build
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:latest .
- docker push $CI_REGISTRY_IMAGE:latest
$CI_REGISTRY_IMAGE
est une variable prédéfinie pointant vers le registre du projet.- Les identifiants sont injectés automatiquement par GitLab CI.
Bonnes pratiques
- Versionnez vos pipelines avec
.gitlab-ci.yml
. - Utilisez des variables de projet pour les secrets.
- Séparez les étapes (build, test, deploy) pour plus de clarté.
- Nettoyez régulièrement les images Docker inutilisées dans le Registry.