Build Automation Tips

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Group

    Build Automation Tips - Presentation Transcript

    1. Build Automation Tips
        • Carlo Bonamico
        • [email_address]
        • Genova JUG Meeting - 8/5/2007
    2. Cos’è una build
      • L’insieme di TUTTI i passaggi necessari per creare un prodotto software
        • non solo una compilazione…
    3. Input
      • Sorgenti
        • Java
        • multi-linguaggio (C/C++, scripts...)‏
      • File di configurazione
        • properties, XML
      • Risorse
        • immagini
        • testo
    4. Output
      • Eseguibili / librerie
        • jar / exe / dll
      • Documentazione
        • javadoc, doxygen, xdoc
      • Installers
        • jar, msi, xpi ...
      • Source Package
        • zip
    5. Perché automatizzarla?
      • Test-Driven Development
      • Continuous Integration
        • Build Early, Build Often
        • il costo di integrazione è esponenziale rispetto al tempo dall’ultima integrazione
      • E soprattutto…
      • Don’t Repeat Yourself ( DRY principle )‏
        • per risparmiare tempo
        • per fare meno errori
    6. Step 1: Version Control
      • Gestire i sorgenti in un repository che contiene TUTTI i file necessari
        • SOLO quelli!?
        • CVS, SVN, altri
      • Problema: gestione dipendenze esterne
        • Approccio “tutto nel repository”
          • svn externals
        • Approccio “gestione automatica”
          • maven
    7. Step 2: Build definition
      • Un file di configurazione deve specificare tutti i passi necessari
      • Un motore di build lo utilizza per coordinare tutti gli altri tool
          • makefile
          • ant
          • maven
          • rake
        • Script custom (es shell, python)‏
    8. Step 3: Build server
      • Periodicamente,
        • scarica i sorgenti aggiornati dal repository
        • esegue la build
        • esegue eventuali test
        • produce report e/o statistiche
        • archivia i risultati
        • notifica gli sviluppatori dei risultati (es. blame )‏
    9. Un esempio con Hudson
      • Build server scritto in Java
        • https://hudson.dev.java.net
      • Praticamente non richiede installazione
        • https://hudson.dev.java.net/hudson.jnlp
      • Molto semplice da usare
      • Potente
      • Ottimo supporto
    10. Feature avanzate
      • Generazione automatica della documentaz.
      • Pubblicazione automatica dela webapp su un sito di test
      • Build su cluster di macchine
      • Compilazione codice C/C++
        • http://www. martinfowler .com/articles/ ciWithCom .html
      • Monitoraggio di processi di amministrazione
        • es. backup/mirror siti web
    11. Vantaggi
      • Verifica immediata problemi
        • dipendenze
        • configurazioni
        • errori banali
      • Ripetibilità
        • ricostruzione sorgenti legati a una build
      • Velocità di integrazione e di testing
      • Analisi informazioni
    12. Altri server
      • http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix
      • http:// cruisecontrol . sf .net/
        • il primo…
      • http://maven.apache.org/continuum/
        • focalizzato su MAVEN
        • potente ma UI difficile da usare
      • http://www. atlassian .com/software/bamboo/
        • commerciale
    13. Altri riferimenti
      • L’ Articolo su Continuous Integration
        • http://www.martinfowler.com/articles/ continuousIntegration.html
      • Wikipedia
        • http://en.wikipedia.org/wiki/ Continuous_Integration
      • http://www.carlobonamico.com

    + carlo.bonamicocarlo.bonamico, 3 years ago

    custom

    2383 views, 0 favs, 4 embeds more stats

    Presentazione al Genova Java User Group

    More info about this document

    CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

    Go to text version

    • Total Views 2383
      • 2317 on SlideShare
      • 66 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds
    • 29 views on http://juggenova.net
    • 28 views on http://www.juggenova.net
    • 8 views on http://www.carlobonamico.com
    • 1 views on http://www.juggenova.net:80

    more

    All embeds
    • 29 views on http://juggenova.net
    • 28 views on http://www.juggenova.net
    • 8 views on http://www.carlobonamico.com
    • 1 views on http://www.juggenova.net:80

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events