Tonido build and test HW

One of the challenges we have at CodeLathe is making sure Tonido builds/runs on all 4 OSes(Windows, Mac, Linux + Tonido Plug) without problems. And we have to keep verifying that things are not broken as we do development. So I thought I would talk a little bit about the continuous integration process we have for Tonido as well as the testing infrastructure. Maybe this would help you in your next project.

servers

Here’s our HW setup:

Quad Core Ubuntu Server running 8.04 Hardy Heron

  • Subversion repository for version control
  • Trac for internal wiki
  • RT for bug tracking and customer feedback

Quad Core Ubuntu Server running 8.04 Hardy Heron

  • Hudson – Build System (controls all the VMs as a master-slave configuration)
    • Builds every night or on a as needed basis
    • One click build process spits out release packages once it is done
    • One click promotion promotes a Tonido build to our QA staging area for internal testing
    • One click promotion promotes a Tonido build to release
  • Ubuntu 8.04 desktop VM builds source for Linux
  • Windows XP Pro VM builds source for Windows and runs our Perl based System tests
  • Ubuntu 8.04 desktop VM runs Perl based System tests

    Mac Mini 1.8 GHz

    • Builds mac source code controlled by Hudson (It would have been nice if we were allowed to run Mac OS X as a guest in a VM)

    Test Machines

    Many of these machines are grouped using Tonido P2P groups.

    They are also located/distributed geographically with different router configurations etc, This is especially important because we need to verify NAT traversal when using the Tonido Network.

    • 4 Dual Core Windows Vista Ultimate Machine running Tonido 24/7
    • 2 Mac Minis 1.8 GHz Runs Tonido 24/7
    • 1 Quad Core Windows XP Pro Machine running Tonido 24/7
    • 1 Dual Core Windows Vista 64 bit Premium running Tonido 24/7
    • 1 Ubuntu 8.04 Linux VM running Tonido 24/7

    In addition to all these machines, there are about 5 TonidoPlugs that are running Tonido 24/7. We expect more plugs to be online once we wrap up development and start our testing phase on the plugs.

    Our biggest headache is keeping all those passwords straight. 🙂

    6 Responses

    1. Hi! What software do you use to test drive the functionality on the HTML/JS side? Something open source or home-grown?

    2. Madhan says:

      @Jason We do it the old fashioned way, we have about several hundreds of test cases we go through manually. 🙂

    3. Christopher Olson says:

      Speaking of passwords….

      It’d be neat to create some sort of an encrypted password plugin, so that passwords could be stored in a secure database on a personal Tonido server, and then retrieved over the web (using SSL) – preferably in some sort of a non-caching format (like Flash, or something.)

      The Keepass project has some good stuff, and is open source. I use that to manage my myriads of logins and passwords.

    4. Madhan says:

      @Christopher Yes, something like that would be useful. One of our team guys actually prototyped something like this. It however never got past the initial stages.

    5. thomas says:

      seconded.
      I actually found Tonido through a web search for “distributed password management”, then “encrypted p2p password management”, and finally something about “collaboration”.
      Our situation is that a handful of admins need access to passwords; on-line and off-line. And the passwords may change and need to be updated. So my first line of thought was something along the lines of monotone: distributed version control, with a passwords db that could be encrypted.
      A possible solution, but not completely elegant.

      Currently I’m considering using CPM (http://www.harry-b.de/dokuwiki/doku.php?id=harry:cpm) and distributing the encrypted password databases through a monotone-like approach.
      Obviously, a Tonido Application that emulates CPM (searchable with regex, only displays that one required password at a time) with a ‘master’ password DB on the group owner’s account, auto-accepting diffs submitted from roaming admins, and keeping a history just-in-case – would be marvelous!

      All that said, I’m bleeping impressed with Tonido as it is.

    6. Madhan says:

      @thomas Yes an application to store passwords would be useful. At the same time, you could consider using a shared group Workspace to store passwords. The data is synchronized with everyone.

    Leave a Reply