Question

Notre logiciel est construit sur les plateformes Linux et Windows. En fonction des préférences du développeur, une contribution est développée et testée sur l'une ou l'autre plate-forme, puis attribuée à notre référentiel de subversion. Il s'avère alors que la contribution ne s'appuie pas sur l'autre plate-forme et qu'un correctif doit être apporté. Le correctif sur l’autre plate-forme peut à nouveau casser la construction sur la plate-forme d’origine, et ainsi de suite.

Je préférerais que la contribution soit construite (et testée par régression) sur l’autre plate-forme également avant d’être validée. Nous avons un serveur de construction continu (CruiseControl), mais ce serveur construit à partir du référentiel. Je recherche une solution dans laquelle le serveur de génération continue s'appuie sur une autre plate-forme en tant que vérification préalable à la validation, puis valide les opérations si la construction et le test aboutissent.

Des suggestions?

Était-ce utile?

La solution

Matheiu Godlewski a fait une bonne suggestion à l'adresse Wiki CruiseControl .

Si vous combinez sa suggestion avec l'élément veto , je pense que vous devrait être défini.

Autres conseils

Teamcity gère les validations pré-testées. Vous pourrez peut-être faire quelque chose avec les nouvelles fonctionnalités de génération de chaînage de la version 4.0 ( http://www.jetbrains.com/teamcity/features/newfeatures.html ). Les agents sont multi-plateformes et peuvent être configurés pour exécuter uniquement des bits particuliers de la construction. Ils pourraient donc être configurés pour exécuter uniquement un sous-ensemble de tests.

Notez que je n'ai pas réellement fait ceci:)

Il serait peut-être plus facile d’avoir deux branches, l’une dans laquelle les utilisateurs s’enregistrer, et l’autre dans laquelle ils fusionnent leurs modifications après avoir réussi l’intégration continue.

Nous avons utilisé une installation de test et de construction personnalisée pouvant être déployée à distance sur plusieurs systèmes d'exploitation (et plusieurs produits de base de données sur plusieurs systèmes d'exploitation). Cela a été fait comme une construction nocturne avec une règle selon laquelle vous corrigez vos bugs le lendemain matin.

Pas tout à fait continu alors, mais c'est potentiellement beaucoup de travail à faire sur un hook pré-commit. Surtout si votre référentiel de contrôle de source verrouille les fichiers affectés pendant toute la durée de l'exécution du hook pré-validation.

Je pense qu'il y a une différence entre un test d'intégration continue exécuté pendant la journée, par validation, et un test d'intégration système exécuté quotidiennement.

Douglas Leeder a suggéré une "intégration". branche - la bonne chose à ce sujet est qu'il est possible d'automatiser. Si les tests réussissent - fusionnez avec le 'trunk'.

Certains systèmes de contrôle de version (par exemple, bzr / hg / git) rendent cela plus facile que d'autres, mais c'est possible dans la plupart des cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top