2010-08-18 7 views
1

Je vais bientôt passer à git pour mon contrôle de version. Mon système de construction continue est Hudson et j'utilise maven pour construire mes artefacts.hudson + git + maven

Tout le monde a une bonne pratique pour configurer git pour qu'il fonctionne au mieux avec ces autres outils.

Des recommandations sur la façon dont les paquets et les plugins devraient être gérés dans git pour pouvoir être facilement intégrés dans Hudson seraient également appréciées.

S'il vous plaît et merci.

+0

En fait ... http://stackoverflow.com/questions/3209208/what-is-the-cleverest-use-of-source-repository-that-you-have-ever-seen/3209767#3209767: non more hudson;) – VonC

+0

@VonC: Je prendrai plus de temps pour tout relire plus tard mais je ne vois pas comment la solution décrite par David est si différente d'une build locale (que vous êtes supposé lancer avant de commettre) et je ne pense pas qu'il permet de supprimer un serveur CI "central". * "Plus d'Hudson" * ressemble à un raccourci exagéré. –

+0

@Pascal: "Plus d'Hudson" ressemble à un raccourci exagéré ... parce que c'est le cas;) Mais le fait demeure que pour un bâtiment privé, vous n'avez pas besoin d'un planificateur de travaux. Juste un autre dépôt Git local avec un script pour gérer les builds et pousser ceux qui sont valides (c'est-à-dire qui les compile) vers un repo distant. * Là * (c'est-à-dire sur le repo distant), des travaux plus complexes peuvent avoir lieu (analyse statique, tests unitaires, ...), programmés par Hudson. – VonC

Répondre

6

Nous utilisons quotidiennement git-maven-hudson.

Pour hudson, il existe un plugin git qui fonctionne très bien et qui a une fonction de tueur. Maven prend soin de ses propres dépendances et n'a pas besoin de savoir sur git ou hudson, ce qui rend le découplage agréable et les pièces moins mobiles.

maintenant pour la fonction tueur:

Nous travaillons sur la base billet. En git, nous utilisons une branche par ticket et faisons tout le développement pour un seul ticket sur cette branche. Lorsque vous êtes prêt à partager, nous poussons la branche vers un dépôt central. Le plugin Git va vérifier et charger toutes les nouvelles branches, les fusionner au master et compiler/exécuter les tests/déployer sur Nexus et pousser les patchs vers la branche master.

Nous tirons régulièrement de la branche maîtresse pour rester près de la tête.

Cela fonctionne bien avec peu de conflits de fusion sur le serveur.

+0

Pourriez-vous décrire plus en détail comment cela fonctionne, ou un lien vers une page de référence? –

+0

Voir la page wiki du plugin git et chercher 'fusion de branches pre-build'. http://wiki.hudson-ci.org/display/HUDSON/Git+Plugin –

Questions connexes