Date: Tue Dec 9 19:17:57 2014 +0100
Modifs sur activité Travis suite à la séance.
diff --git a/input/activite_Integration_continue_avec_Travis.md b/input/activite_Integration_continue_avec_Travis.md
index 05d1517..fae21c6 100644
@@ -9,8 +9,8 @@ L’intégration continue en quelque mots
L’*intégration continue* consiste à déclencher un ensemble de tâches à chaque
-fois qu’un développeur valide une modification sur un projet (après un
-*commit*). Quelques exemples de tâches :
+fois qu’un développeur valide une modification sur un projet (surtout par
+exemple après un *push*). Quelques exemples de tâches :
* récupération du code source le plus récent,
* compilations :
@@ -20,10 +20,15 @@ fois qu’un développeur valide une modification sur un projet (après un
* tests automatisés (attention, ne pas confondre *intégration continue* et
*tests d’intégration*) :
* fonctionnels,
- * conventions de présentation des fichiers,
- * couverture,
- * code dupliqué,
- * traque des balises `TODO`,
+ * conventions de présentation des fichiers (grâce à des
+ [lint](http://fr.wikipedia.org/wiki/Lint_%28logiciel%29)-ers, voir
+ [ce linter pour JS en ligne](http://www.jslint.com/)),
+ où le moindre espace (essayer `var a=0`) ou commentaire louche (essayer
+ `// TODO` est détecté),
+ * couverture (voir [l’article Wikipedia](http://fr.wikipedia.org/wiki/Couverture_de_code),
+ * fonctionnalités et apparences d’un site web, grâce par exemple
+ respectivement à [CasperJS](http://casperjs.org/) et à
+ [PhantomCSS](https://github.com/Huddle/PhantomCSS),
* …
* mesures :
* efficacité,
@@ -54,9 +59,14 @@ par un testeur qualifié.
pas tests d'intégration (niveau 2).</p>
""") }}
-Avec Travis, comme les environnements sont recréés à partir de rien à chaque
-fois, cela permet d’être sûr que le projet ne dépend pas d’une configuration
-locale particulière. Tout est maîtrisé.
+Avec Travis, les environnements sont recréés à partir de zéro à chaque fois.
+
+{- spoiler("Comment ?",
+"""Machines virtuelles.""") }}
+
+Cela permet d’être sûr que le projet ne dépend pas d’une configuration
+locale particulière, ou qu’un précédent test a laissé traîné des fichiers ou
+des entrées dans la base de données. Tout est maîtrisé.
Très utilisée dans les méthodes *agiles*, l’intégration continue suppose une
très bonne préparation en amont. Voir [l’article
@@ -81,9 +91,6 @@ Démarrer avec Travis
* Avoir un compte sur <https://github.com/>,
* s’y connecter car les comptes Travis sont les comptes Github.
-* Avoir un projet sur <https://github.com/> (cela pourrait être un CV en PHP,
- ici nous utiliserons un faux projet en Python), qui pourrait s’appeler
- `test-travis-ou-autre`,
* aller sur <https://travis-ci.org> et chercher le lien `Sign in`…
* …qui est en fait sur la page <https://travis-ci.org/auth>.
* Laisser tous les droits requis à Travis sur votre compte Github.
@@ -92,8 +99,13 @@ Démarrer avec Travis
## Activer le hook pour le projet
-* Sur <https://travis-ci.org/profile>, cliquer sur le bouton correspondant.
-* Sur la page *Settings* de votre projet <https://github.com/>, vérifier que :
+* Créer un projet sur <https://github.com/>. Ici nous allons commencer par un
+ faux projet en Python, qui pourrait s’appeler `test-travis-python`.
+* Sur la page *Settings* de votre projet, ou plutôt dans `Settings`, activez
+ le service `Travis CI`.
+* Sur <https://travis-ci.org/profile>, re-synchroniser, puis cliquer sur le
+ bouton `ON` correspondant au projet.
+* Sur la page *Settings* de votre projet, vérifier que :
* *User* et *Token* sont remplis,
* la case *Active* est cochée.
@@ -136,7 +148,7 @@ pu simplement ajouter à la fin :
"""Fake procedure to test doctests.
>>> test_proc(42)
- 42
+ 43
"""
return x
@@ -151,6 +163,12 @@ la file d’attente, et le résultat arrive sur :
* <https://travis-ci.org/profile/VOTRE_PSEUDO> ou sur
* <https://travis-ci.org/VOTRE_PSEUDO/VOTRE_PROJET>.
+Pour être notifié par email, il faut bien le configurer dans votre client *git*,
+ou suivre [la doc](http://docs.travis-ci.com/user/notifications/#Email-notifications).
+
+Malheureusement, ce script ne montre pas les détails de l’erreur (43 au lien de
+42).
+
### Premier .travis.yml avec PHP
`.travis.yml` :
@@ -193,7 +211,7 @@ de `PHPUnit_Framework_TestCase`. Toutes les méthodes seront exécutées.
{
public function testSimple()
{
- $this->assertEquals(0, 0);
+ $this->assertEquals(0, 1);
}
}
?>
@@ -217,6 +235,23 @@ Il peut donc être important de :
les sources sont [disponibles](http://github.com/travis-ci/travis-lint),
* soit en ligne avec [l’application web de Travis](http://lint.travis-ci.org/).
+En résumé
+=========
+
+L’intégration continue permet :
+
+* **quoi** : d’automatiser des tâches de tests ou de déploiement d’un projet
+* **où** : dans des environnements à chaque fois vierges
+* **quand** : après un envoi de code sur le serveur
+* **comment** :
+ * préparant l’environnement (dépendances, données de tests…)
+ * en clonant le projet
+ * en extrayant les fichiers
+ * en lançant des commandes spécifiques
+
+Attention, ici GitHub ne fait pas d’intégration continue. Le **qui**, c’est
+Travis.
+
Pour aller plus loin
@@ -244,7 +279,7 @@ Idées de tâches
* analyseurs statiques :
* pour Python :
* [PEP8](https://pypi.python.org/pypi/pep8)
- * https://pypi.python.org/pypi/flake8
+ * [flake8](https://pypi.python.org/pypi/flake8)
* [pylint](http://www.pylint.org/)
* couverture,
* code dupliqué,