|
@@ -1,13 +1,40 @@
|
|
|
-Documents et snippets relatifs à la mise en place de l'intégration continue:
|
|
|
|
|
|
|
+L'[intégration continue](https://fr.wikipedia.org/wiki/Int%C3%A9gration_continue) consiste à exécuter une série d'actions à chaque modification du code source d'un projet (cad. à chaque push/merge sur le dépot).
|
|
|
|
|
|
|
|
-### [I - Avec Gitlab-CI](http://codebox/lab/Integration-continue/blob/master/Gitlab-CI/readme.md)
|
|
|
|
|
-#### [- Exemples de fichiers .gtlab-ci.yml](http://codebox/lab/Integration-continue/tree/master/Gitlab-CI/gitlab-ci_files)
|
|
|
|
|
-#### [- Docker](http://codebox/lab/Integration-continue/blob/master/Gitlab-CI/docker.md)
|
|
|
|
|
|
|
+Ces actions peuvent être des tests unitaires, fonctionnels, la compilation, tests de performances, des contrôles de qualité du code...etc.
|
|
|
|
|
|
|
|
|
|
|
|
|
-### [II - Avec Jenkins](http://codebox/lab/Integration-continue/blob/master/Jenkins/readme.md)
|
|
|
|
|
-#### [- Cas d'un projet Python](http://codebox/lab/Integration-continue/blob/master/Jenkins/jenkins-python.md)
|
|
|
|
|
|
|
+## I - Gitlab-CI
|
|
|
|
|
|
|
|
-### III - L'intégration continue selon les projets
|
|
|
|
|
-#### [- Projets Python](http://codebox/lab/Integration-continue/blob/master/Autres/Python/python-ci.md)
|
|
|
|
|
|
|
+Gitlab (à partir de la version 8.0) propose un outil intégré d'intégration continue.
|
|
|
|
|
+
|
|
|
|
|
+> Voir la [page de présentation](https://about.gitlab.com/gitlab-ci/) et le [guide de départ](https://docs.gitlab.com/ce/ci/quick_start/).
|
|
|
|
|
+
|
|
|
|
|
+Un fichier .gitlab-ci.yml doit être ajouté au projet: c'est lui qui définit les actions (jobs) à effectuer à chaque mise à jour du code (build).
|
|
|
|
|
+
|
|
|
|
|
+Ces actions sont ensuite effectuées sur une machine distante, sur laquelle a été installée le ou les"runner(s)".
|
|
|
|
|
+
|
|
|
|
|
+Les résultats sont ensuite disponibles dans l'onglet "Pipelines" du projet. Ils peuvent aussi être visibles depuis la page d'accueil du projet, envoyés par mail aux développeurs...etc.
|
|
|
|
|
+
|
|
|
|
|
+Concrétement, Gitlab-CI clonera le dépôt Git sur la machine de build, et exécutera les commandes du job dans le répertoire cloné.
|
|
|
|
|
+
|
|
|
|
|
+1. [**Mise en place**](Gitlab-CI/readme.md)
|
|
|
|
|
+2. [**Exemples de fichiers .gitlab-ci.yml**](Gitlab-CI/gitlab-ci_files)
|
|
|
|
|
+3. [**Avec Docker**](Gitlab-CI/docker.md)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+## II - Avec Jenkins
|
|
|
|
|
+
|
|
|
|
|
+[**Jenkins**](https://wiki.jenkins-ci.org/) est un "puppet-master". En clair, il permet d'automatiser tout un tas de choses, en particulier en ce qui concerne l'intégration continue.
|
|
|
|
|
+
|
|
|
|
|
+**Avantages:** Eprouvé, grande communauté d'utilisateurs, des centaines de plugins.
|
|
|
|
|
+
|
|
|
|
|
+**Inconvénients**: Vieillissant, plus trés ergonomique.
|
|
|
|
|
+
|
|
|
|
|
+1. [**Installer Jenkins**](Jenkins/install-jenkins.md)
|
|
|
|
|
+2. [**Configurer un job**](Jenkins/new-job.md)
|
|
|
|
|
+3. [**Exemple avec Python**](Jenkins/jenkins-python.md)
|
|
|
|
|
+
|
|
|
|
|
+## III - Différents exemples d'intégration continue
|
|
|
|
|
+
|
|
|
|
|
+1. [**Projets Python**](Exemples/Python/python-ci.md)
|
|
|
|
|
|