Over the weekend I built a build notifier that shows me when my code projects have passed all their tests or if they failed.
It shows a message on an LCD screen and turns a multi-color LED to red or green. When the build is in process it “breathes” the LED yellow. It uses TravisCI, Heroku, and Github.
It taught me a lot about the basic development cycle and how it works. And all the magic smoke stayed inside the devices!
The Spark team has been talking for months about a CI process that integrated a local Spark Core to flash and test test every master commit of our firmware repo. I definitely second @avidan’s suggestion to share what you’ve learned!
I’m using TravisCI. It’s hooked to Github to run a build after any new code is pushed. They will POST to any configured URL when a build starts and then either passes or fails.
I have a small Node.js HAPI app on Heroku that receives this notification and calls my Spark Core’s custom REST URL (/buildstatus) with the human readable string representing the result (“Passed” or “Failed” or “Pending”, plus a few others).
The Core triggers an RGB LED and shows the message on an LCD.
With that many different machines, events, and endpoints involved, it was tricky to debug. The build server can sometimes take a few minutes to start the build after a push to Github. The Node.js/Spark.io part seems pretty stable and consistent.