La Continuous Integration è una pratica di sviluppo fondamentale per migliorare la qualità del software: CruiseControl.NET è una suite open-source per gestire questo processo in modo trasparente al team di sviluppo. Il relatore mostrerà i vantaggi derivati dall'uso di tale metodologia in un caso pratico, ovvero nello sviluppo della piattaforma di blogging Subtext, di cui è membro del team di sviluppo, nonché Build Manager.
2. Who is “CodeClimber”?
• Chi di voi è Milanista?
• All’anagrafe Simone Chiaretta
• Sviluppatore e Architetto .NET (C#)
• Membro UGIdotNET
• OpenSource (FCKeditor e Subtext)
• 2 Gennaio: Flying to Wellington
3. Agenda
• Continuous Integration
–Cosa, perché e come
• CruiseControl.NET
– Installazione
–Componenti
• Best Practices di CC.NET
–Subtext
4. Continuous Integration
Continuous Integration is a software development practice
where members of a team integrate their work frequently,
usually each person integrates at least daily - leading to
multiple integrations per day. Each integration is verified by
an automated build (including test) to detect integration
errors as quickly as possible. Many teams find that this
approach leads to significantly reduced integration
problems and allows a team to develop cohesive software
more rapidly.
(Martin Fowler)
5. Perchè fare CI
• Lavoro in team
• Ridurre il tempo di integrazione
• Quindi sviluppare codice più
velocemente
6. Come si fa CI
• Source Control
• Build
• Test
• Verify
7. CruiseControl.NET (1)
• Porting di CruiseControl
• “Sponsorizzato” dalla
ThoughtWorks di Fowler
15. Subtext is a personal blog publishing platform that
focuses on usability, elegance, and simplicity. If
you’ve ever caught yourself throwing your hands
in the air and declaring that you’re going to write
your own blogging engine, then Subtext is for
you.
http://www.subtextproject.com
16. Setup Ambiente (1)
• artifact
contiene i “prodotti”
delle build (log e build
binarie)
• workingFolder
la dir con i file scaricati
dal SourceControl
17. Setup Ambiente (2)
• Progetto CI-Config per aggiornare
le configurazioni di CC.NET
18. Branch parallele
Ogni branch ha nel suo repository
anche i tool usati per la build:
• Non è necessario installare sul
server i tool
• Versioni diverse potrebbero non
essere compatibili
19. Processo di Build (1)
• Build script di NAnt che lancia
–MSBuild
–MbUnit
–NCover + NCoverExplorer
– FxCop
–Copia/Archiva/Zippa