Exécuter un Git Hook avant le déploiement

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,

Dans le cadre de mon projet de jeu par navigateur, j'utilise PHPUnit pour les tests unitaires (car il est intégré à Symfony2).

Ainsi, pour vérifier les que les tests passent, ou non, j'utilise la commande phpunit -c app/ dans le répertoire du projet.

Actuellement, je dois lancer les tests manuellement. Ce que j'aimerais, c'est qu'avant un push sur le dépôt Bitbucket, je puisse lancer ces tests unitaires afin de refuser le push s'ils ne passent pas.

Vous allez me dire, utilise un hook Git. Ok, mais j'ai un petit problème : si j'ai bien compris le principe des hooks, c'est en local non ? Je veux dire par là que si un autre dev travaille avec moi et n'a pas configuré ce hook, il pourra de toute façon pusher sur le serveur, non ?

Ce que j'aimerais, c'est pouvoir configurer le hook sur mon repo Git. Lors d'un push, les tests unitaires sont lancés, et s'ils échouent, le push est refusé.

Y a-t-il un moyen de faire ça ?

Merci d'avance :)

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

Non mais si ton site est sur github tu peux empêcher les autres de pousser dessus. Ainsi ils ne pourront pas pousser sur le depot, ils devront passer par un dépôt local et faire une pr pour merger le code. Et sur github tu peux utiliser des trucs comme Travis pour tester toutes les pr.

Regarde par exemple sur le dépôt de zds, c'est ça en gros qui est fait.

+2 -0
Auteur du sujet

Yop,

Merci de ta réponse. Le dépôt n'est pas sur GitHub mais sur BitBucket, mais j'ai déjà mis le même principe de droits pour empêcher de push sur la branche master.

Le souci c'est que je ne peux pas vraiment utiliser Travis car mon code n'est pas open source. Autant ça ne me dérange pas de payer un petit peu pour un service (genre 10 à 20 € par mois), autant les prix de Travis sont vraiment trop élevés pour moi.

J'utilise pour mes déploiements dploy.io, qui est simple mais qui me suffit.

Est-ce que tu aurais un service externe (je ne veux pas l'installer sur mon serveur), qui permette à la fois de gérer le déploiement et les tests de code, et assez simple d'utilisation (éventuellement payant) ?

Merci d'avance :)

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

Moi non. On utilise Travis ici et au boulot Jenkins mais qui necessite une installation. Et c'est pas franchement mon métier. Par contre des services d'intégration continue, il y en a pas mal et c'est la seule solution pour ton problème. Il y aurait aussi la solution de mettre un hook sur le git côté serveur, pour rejeter les push qui ne passent pas, mais ça demande d'heberger toi même le git car ça m'étonnerait que bitbucket autorise des hook lambda.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte