Continuous Integration with Scratchbox And CruiseControl

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 Favorite & 1 Event

    Continuous Integration with Scratchbox And CruiseControl - Presentation Transcript

    1. Continuous Integration w/ Scratchbox & CruiseControl Jani Mikkonen jani.mikkonen@symbio.com ext-jani.3.mikkonen@nokia.com
    2. Overview • What is Continous Integration ? • Where to start ? • Setting up environment • Tie things up with CruiseControl • Contact details
    3. What is Continuous Integration • Automated builds from SCM • Runs automated tests – Unit tests – Functional tests – Benchmarks – Code Coverage – API / ABI Breaks • Reporting • Artifacts handling
    4. Where to start ? • Creating a debian package from your software is good start! • Each build phase should just have simple “make” target. • Gather the tools you need to produce all the build artifacts.
    5. Setting up the environment • Maemo sdk and required rootstraps & build-tools • Some shell scripts to interact with scratchbox1 • Local SCM checkouts
    6. Tie things up with CC Think off CI Tools as a fancy replacement for a cron.
    7. Sample: sb-execute # Notice: most of the error handling stripped SBTARGET=$1 DIRECTORY=$2 COMMAND=$3 shift; shift; shift /scratchbox/login sb-conf se $SBTARGET || error 3 "Could not select target '$SBTARGET'." /scratchbox/login -d $DIRECTORY $COMMAND $@
    8. Sample: project building <!-- update the build id in the changelog --> <exec timeout="2400" command="${homedir}/bin/updatebuildid" args="$ {sbhomedir}/rojects/${project.name} ${label}"/> <!-- install build dependencies --> <exec timeout="2400" command="${homedir}/bin/sb-install" args="$ {sbtargegt} ${build_dependencies}"/> <!-- runs: dpkg-buildpackage -b -rfakeroot on the given document --> <exec timeout="2400" command="${homedir}/bin/sb-buildpackage" args="$ {sbtargegt} /home/cruise/projects/${project.name}"/> <!-- run 'make' in given directory to run testsuite and translate the results to xml --> <exec timeout="2400" command="${homedir}/bin/sb-make" args="$ {sbtargegt} /home/cruise/projects/${project.name} check-xml"/> <!-- check if test results were all positive --> <exec timeout="2400" command="${homedir}/bin/testresults" args="$ {sbhomedir}/projects/${project.name}/tests"/>
    9. Sample: project publishing <!-- remove build dependencies --> <execute command="${homedir}/bin/sb-remove ${sbtargegt} $ {build_dependencies}"/> <!-- email results to address list 'dev-mailinglist' --> <htmlemail buildresultsurl="http://localhost.localdomain" /> <propertiesmapper file="${homedir}/include/email.properties"/> </htmlemail> <!-- merge to master-stable on success --> <onsuccess> <execute command="${homedir}/bin/merge-master-stable $ {sbhomedir}/projects/${project.name}"/> </onsuccess>
    10. Questions ? Contact ! Jani Mikkonen EMAIL: jani.mikkonen@symbio.com IRC: jani @ Freenode

    + rasjanirasjani, 1 month ago

    custom

    168 views, 1 favs, 0 embeds more stats

    Slides for a Lightning speech held on Maemo Summit more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 168
      • 168 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    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