iPhone application that monitors the status of continuous integration builds
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend
client
parse
.gitignore
.travis.yml
LICENSE.txt
README.md

README.md

Build Status

iOS Project Monitor

Icon Available for free in the App Store!

An iPhone app that monitors continuous integration servers for the status of your builds. Should a build fail, a push notification will be sent to your phone with information about the faulty commit. Coming to the app store in just a week (or two)!

Screens

Currently supports Semaphore, Travis and Travis Pro. Jenkins and TeamCity support coming soon.

Feel free to fork the repo and contribute! The public Pivotal Tracker project can be found here.

Project Setup - Client

Parse

The iPhone app uses Parse as its web server and therefore requires credentials.

Copy ProjectMonitor/Credentials.example.plist to ProjectMonitor/Credentials.debug.plist, enter your Parse credentials.

Cocoa Pods

Run pod install in the client/ folder to download iOS frameworks and dependencies.

Other Credentials

The project uses a variety of optional services (New Relic, Crashlytics, Twitter). Please refer to ProjectMonitor/Credentials.example.plist and ProjectMonitor/ProjectMonitor-Info.debug.plist.

Project Setup - Frontend (Parse)

Parse's Cloud Code is used to provide an authentication endpoint for private pusher channels. Details can be found in parse/README.md folder.

Project Setup - Backend

Sidekiq

Sidekiq is the background worker of choice for this project. Start producing work by polling Parse for builds to update with rake produce. These builds will then get updated by Sidekiq workers with rake work.

Monitoring is available with rake monitor.

Parse and Pusher

The backend interacts with Parse's REST API and pushes updates with libPusher. Therefore keys are required in config/application.yml file. Please see config/application.yml.example as reference.

Tests

Client

iOS Client tests use Kiwi and are run inside XCode.

Backend

Backend server tests can be run with RSpec with rake in backend/.

The backend tests use togglable fakes as outlined in the Engine Yard talk. The following command will run the same tests with full integration:

backend/ $ INTEGRATION=true rake

Travis

Travis CI runs a test matrix that runs both integration and fake runs as seen here.

Thanks

Inspired by Pivotal's Project Monitor and cppforlife's Checkman.