3. Automatizzazione build e rilasci
• Non vuol dire fare CRTL+SHIFT+B in VisualStudio
• Operazioni precedenti o successive alla compilazione
• Test automatici (specie se di lunga durata)
• Preparazione e pubblicazione pacchetti Nuget, Setup o semplici zip
• Documentazione
• Deploy su ambienti di produzione
• Operazioni di manutenzione (import, export, statistiche, ecc.)
Cosa significa?
4. • Sana pigrizia
Fatica, noia ed “attrito” sono campanelli d’allarme.
Chiedersi se occorre cambiare qualcosa.
• Migliorare le pratiche di sviluppo
“Si è sempre fatto così” non è un buon motivo.
Imitare chi sta già facendo diversamente da tempo.
• Velocità del progetto
Le operazioni manuali impediscono la velocità.
L’automazione, invece, la promuove migliorando il ritmo.
Perché farlo?
5. • Gradualità
Non puntare subito al massimo grado: dopo primo interesse la difficoltà può
frenare. Passare dagli script alle build regolari fino alla continuous integration.
• Diminuire il rischio
Procedere per gradi raccogliendo subito i benefici e costruendo sui risultati
ottenuti.
• Convincere il cliente/l’azienda ostile
Introdurre piccole variazioni incrementalmente: sono meglio accettate (e in ogni
caso si notano meno!)
Come fare (per non farsi male)?
6. • Build tools
PSake, MSBuild, Rake, Nant
• Build server e Deploy server di terze parti
TeamCity, CruiseControl.NET, Octopus Deploy
• Visual Studio Team Services
Completamente integrato, setup semplice
Con quali strumenti?
8. • Rendere la build «autonoma» e riproducibile
Deve funzionare con il minimo indispensabile (scaricare il possibile da
web, oppure metterlo nel repository).
Alcuni SDK, comunque, vanno preinstallati.
• Non perdere tempo ad automatizzare proprio tutto
Specialmente per il deploy, installare i prerequisiti e configurare
l’ambiente in anticipo semplifica la vita.
Consigli finali
9. • PowerShell Tools for Visual Studio 2015
extension
• Open Command Line extension
• Invoke-Build: Build Automation in PowerShell
• psake: A build automation tool... now with less
XML...
https://doc.co/Mc2NQS
Link utili