Ce README explique en détails les étapes les étapes pour faire une pipeline CI/CD.
Ces fichiers sont nécessaires pour réaliser le tp:
- `gitlab-ci.yml` est le fichier qui défini la pipeline.
- `configure_runner.sh` est le script shell qui automatise la configuration d'un GitLab Runner.
- `docker-compose.yml` est le fichier qui définit les 2 conteneurs nécessaires pour exécuter la pipeline sur gitlab local.
- `tp_3_CI.pdf` est le document du tp.
``` sh
. # Arborescence du repository
├── README.md
├── configure_runner.sh
├── docker-compose.yml
├── pipeline-ci.jpg
└── tp_3_CI.pdf
```
Les variables de configurations sont dans le .gitlab-ci.yml
.
- Récupération du code source : Clonez le code source depuis un dépôt Git.
- Linting : Vérifiez que le code respecte les normes de codage.
- Vérification des copier-coller : Détectez les copier-coller dans le code.
- Analyse de la complexité cyclomatique : Analysez la complexité du code.
- Tests unitaires : Exécutez les tests unitaires de l'application.
- Construction de l'image Docker : Créez une image Docker de l'application.
- Push de l'image Docker : Poussez l'image sur Docker Hub.
- Clonez le dépôt Git sur votre machine locale.
- Configurez les variables d'environnement sensibles sur GitLab.
- Enregistrez un runner GitLab sur votre serveur avec le token d'enregistrement de GitLab.
- Exécutez le conteneur
gitlab-runner
avec une configuration appropriée. - Créez un projet sur GitLab et importez le code source depuis le dépôt Git.
- Modifiez le fichier
.gitlab-ci.yml
pour correspondre à votre application. - Lancez la pipeline CI/CD sur GitLab en spécifiant la branche à partir de laquelle vous souhaitez exécuter le pipeline.
- Suivez la progression de la pipeline dans GitLab et consultez les logs des jobs.
- Téléchargez les rapports de test depuis GitLab.
- Consultez l'image Docker construite dans votre compte Docker Hub.
Ce projet vise à automatiser le processus de développement et de déploiement de votre application Python. Personnalisez le fichier .gitlab-ci.yml
en fonction de votre propre application et infrastructure.
J'ai retiré les données des variables qui doivent être modifiés.