Ή περίπου έτσι. Έχω πορωθεί τον τελευταίο καιρό με το continuous integration. Η ιδέα είναι απλή. Στήνουμε ένα μηχάνημα το οποίο ελέγχει περιοδικά το version control που χρησιμοποιούμε και μόλις ανιχνέυσει αλλαγές τις κατεβάζει. Μετά κάνει αυτόματα το build, τρέχει τα unit test που περιέχει το project, συλλέγει τα στατιστικά του code coverage, τρέχει και το FxCop για να ξέρουμε σε τί κατάσταση είναι ο κώδικας μας και μας τα παρουσιάζει όλα αυτά σε ένα ωραίο dashboard.
Έτσι πετυχαίνω πράγματα. Από τη μία, ακόμη και αν κάποιος κάνει checkin προβληματικό κώδικα, θα το μάθω σε ελάχιστο χρόνο. Από την άλλη, έχω πάντα μια έτοιμη έκδοση της εφαρμογής, τεσταρισμένη και με τα στατιστικά της. Και όλα αυτά χωρίς να ασχολούμαι εγώ με τα builds! Cooooool!
Και όλα αυτά τσάμπα.
Εντάξει, θέλει λίγο ψάξιμο για να το στήσει κανείς, αλλά η εμπειρία αξίζει. Έχουμε και λέμε: Subversion για version control, CruiseControl.NET για το integration/dashboard, MSBuild για το build (παίζει και nAnt), NUnit για Unit Tests, NCover για Code Coverage, FxCop για static analysis. Μαζί με αυτά, και τα MSBuildTasks, τα οποία είναι έτοιμα tasks για το MSBuild, για να καλεί κανείς κατά το build το NUnit, το FxCop και άλλα καλούδια.
Τα πράγματα βέβαια δεν είναι τόσο ρόδινα, όσο με ένα εργαλείο σαν το Visual Studio Team System. Ακόμα παλεύω να καταλάβω γιατί κολλάνε κάποια πραγματάκια. Το dashboard δεν φτάνει με τίποτα το sharepoint. Τα reports είναι απλά πινακάκια, καμμία σχέση με τα full reports του TFS. Και φυσικά, καμμία σύνδεση με work items. Αλλά η διαφορά τιμής ...
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos