BuildReactor 0.10.0

Last commit details

With the new version it is easier to tell what commits broke the build and who’s responsible for fixing it.
The name of the person and commit comment is shown below build name.
If CI server reports multiple commits, each one will be shown every few seconds.
Note the feature is only available to servers that support this:

  • Bamboo
  • Jenkins
  • Teamcity
  • Travis

Commit messages
Servers based on cctray display just user names and only if “Breakers” element is present in cctray.xml
If you prefer the old behaviour and not show any names or comments, you can switch it off in the view settings:
view options

Group/pipeline name in notifications

If groups are supported by your server they will be shown in the notifications.
This is mostly to show more relevant information for GoCD, where pipelines are represented as groups.
Notification with group

Fix Bamboo login issues

Bamboo users might have experienced issue with the extension where the service was being automatically disabled when Chrome started.
This was caused by BuildReactor incorrectly authenticating with Bamboo which resulted in getting 401 error from the server.
It was necessary to login to Bamboo in a separate tab to work around that.
Thanks to Darrin Holst for fixing this!

Permissions change

With the Bamboo authentication issues solved it is not necessary to require “cookies” permission any more.
It has been removed from manifest file in this release.

Don’t allow duplicate service names

If you added a new service and gave it a name that already exists, the existing service would be replaced, which could be pretty annoying.
Same happened when renaming services.
This is now prevented by disabling the confirmation buttons to make sure all services have unique names.

Allow updating just credentials

If you tried to update only the credentials for a service it was a bit tricky as the save button was only enabled after changing some of the monitored projects.
The button is enabled all the time now so it shouldn’t be an issue any more.

Extension crash when offline

Clicking on an offline build could cause BuildReactor to crash.
This would happen for example when the build server was behind company firewall and not available from external network.
This should be fixed now.

Remove UserVoice from Help menu

So far I’ve used UserVoice for new feature requests, but quite a few requests were reported using GitHub issues as well.
Having 2 lists of features is a bit confusing and I think it’s safe to assume that whoever uses BuildReactor also has a GitHub account.
With this release I decided to just switch to GitHub to keep the requests together with the code.
You can still look up the UserVoice list and I’ll still implement features based on it but just to remove the confusion let’s just use GitHub for all project related features and bugs.
Help menu

BuildReactor 0.9.1

Collapse groups

With the latest introduction of multiple columns, each group (or pipeline in GoCD) was shown in a separate row.
If you were using pipelines with only one stage, this wasn’t the most effective way to visualize that.
There is now a new option to “collapse groups” so more than one can be displayed in one row.
This setting only makes a difference if you are using the “fixed” layout.
As you can see on the screenshots below, two groups (Order Entry UI and Javadocs) are shown in one row if there is enough space.

collape_off

collapse_on

BuildReactor 0.9.0 – multiple columns

Today’s version allows to configure how builds are displayed.
You can now select the amount of columns on the settings page and if builds within a group should expand to fill the entire screen width.
By default 2 columns will be displayed but if you want to go back to previous behaviour – just set it to 1.
There are also some improvements to the CSS to better deal with long project names that sometimes pushed labels to the next line.
The spinner is gone and replaced by animated yellow background. If the build is waiting in the queue the background will turn yellow but animation will be turned on only once a build agent actually starts.

The concept of “group” is called differently depending on the CI server:
– project name on Bamboo and TeamCity
– category on BuildBot and CruiseControl.NET
Even though CruiseControl.NET has support for grouping builds, this does not seem to be the case for other CruiseControl servers.
GoCD uses a convention of separating pipline name, stage and jobs using ” :: “. Looks like a reasonable convention so added that to all CCTray based services.
That way even if your server does not support that feature, you can rename your builds with "group_name :: build_name" to display all builds within a group in one row.
Let me know if that causes some problems with the way you use CI.

The configuration is applied immediately and you can see a preview on the right side. All open windows are updated as well so this should make it easier to see how it looks on that big screen on the wall in your project room 🙂

View configuration

The settings apply to full-screen view as well as the popup.

Popup with columns

BuildReactor 0.8.0

It’s been over a year since the last release of BuildReactor!
So far I only maintained a simple changelog for all previous releases (https://adamnowotny.wordpress.com/2014/10/31/buildreactor-previous-versions/).
A new version 0.8.0 has just been published and given the amount of changes I thought it would be a better idea to describe it all in a bit more than a single tweet.

If you already installed BuildReactor it should be updated automatically, but if not you can install the latest version on the Google Chrome WebStore

The source code is at GitHub so you can also customize HTML/CSS if needed.

So what changed?

AngularJS

AngularJS logo
The whole UI has been rewritten from jQuery to AngularJS.
While it took some time it simplified the code a lot and I find it way more maintainable now.
I’d prefer replacing jQuery with Angular gradually and releasing more often but that turned out to be a challenge and in the end the decision was made just to write the UI from scratch.
There is quite a learning curve in learning Angular in my opinion but compared to maintainability and testability of jQuery code it was definitely worth it.
Bootstrap has also been updated and that was a good enough excuse to make some other UI changes.

Old settings screen (0.7.7)

Old settings screen (0.7.7)

New settings screen (0.8.0)

New settings screen (0.8.0)

Reordering

As you can see on the above screenshot there is now a list of currently monitored builds.
You can finally use drag&drop to change the ordering.
The same can be done on the list of services to the left.
This should help to display builds in some meaningful order.

Fullscreen mode header removed

Fullscreen mode used to have a header with BuildReactor logo and buttons on the top.
As this mode is supposed to be used as information radiator it would usually be zoomed to take up the whole screen.
The problem was that the header took up too much of the screen space if there were only few builds.

Full screen header in 0.7.7

Full screen header in 0.7.7

Full screen header removed in 0.8.0

Full screen header removed in 0.8.0

Jenkins

Jenkins logo
The way Jenkins projects are shown has been optimised so it should be more reliable and faster for those of you who have a large number of projects on a single Jenkins instance.

GoCD

GoCD logo
ThoughtWorks GO has been released as open-source and changed name to GoCD.
If you’re looking for a free, scalable and stable CI server than I highly recommend you check it out.
What sets it apart is the concept of build pipelines which make it very easy to see which revisions of your component get promoted to the different environments like CI, QA, UAT, PROD or whatever your testing and deployment strategy is.
The way it allows to describe the jobs execution and dependencies between the different components of your application is quite powerful.
It might not be as easy to configure as some other solutions, but then again…you should make your build steps as simple as running a command from the command-line anyway so this should not be a big issue.
The new website of the project is at http://www.go.cd/

Disable services automatically

Those of you working in an environment where LDAP passwords are reset regularly and too many attempts to use old password result in account lockout will most likely appreciate that the new version of BuildReactor detects authorisation problems.
If your password has expired the affected service will be disabled to prevent the above situation.
Notification will also be displayed in that case so you know you need to update the settings.

Password expired notification

Password expired notification

BuildReactor 0.1.0 – 0.7.7

0.7.7 (8/09/2013)

  • bamboo: show all plans if more than 25
  • dashboard: moved to AngularJS

0.7.6 (1/08/2013)

  • bamboo: show all projects if more than 25

0.7.5 (31/07/2013)

  • buildbot: builds weren’t parsed correctly when username did not contain email

0.7.4 (30/07/2013)

  • support for Snap-CI
  • options: fix layout when long service names are used
  • options: help menu

0.7.3 (10/07/2013)

  • jenkins: increase timeout for getting project list
  • notifications: bring them back, don’t show if dashboard is active
  • new permission required – tabs (used to find out if dashboard is open in any of the tabs so notifications can be automatically disabled)

0.7.2 (7/07/2013)

  • teamcity: support for branches

0.7.1 (26/06/2013)

  • compatibility with Chrome < 26

0.7.0 (23/06/2013)

  • main: rewrite main module using RxJS
  • main: improved logging
  • notifications: show who broke/fixed the build
  • notifications: don't show when starting Google Chrome
  • dashboard: running builds are now yellow
  • dashboard: show disabled builds as grey with label
  • dashboard: show Jenkins unstable builds as broken with label
  • dashboard: show offline label when network down or server behind firewall (error message in tooltip)
  • dashboard: Popup and dashboard show updates in real-time (after pooling for server status that is)
  • dashboard: Removed badge showing how many builds are broken

0.6.5 (22/04/2013)

  • Travis support using it's JSON API (refactoring to RxJS)
  • popup: no word wrapping (display each build in single row)

0.6.4.1 (21/03/2013)

  • buildbot: fix build url

0.6.4 (21/03/2013)

  • BuildBot support

0.6.3 (18/02/2013)

  • don't show sticky notifications when reloading services

0.6.2 (16/02/2013)

  • services: fix authentication problems with Bamboo
  • options: "report a problem" link
  • popup/dashboard: larger icon for "building" status
  • dashboard: left align project name
  • options: better error handling when getting list of available builds

0.6.1 (11/02/2013)

  • monitor disabled builds

0.6.0 (29/01/2013)

  • new UI
  • fullscreen dashboard
  • disable service temporarily
  • filter list of projects

0.5.6 (11/01/2013)

  • popup: group builds

0.5.5 (15/12/2012)

  • fixes to basic authentication
  • cookies permission no longer required

0.5.4 (12/12/2012)

  • show builds from all views for Jenkins
  • Jenkins uses RemoteAPI instead of cctray
  • options: moved project list to right side

0.5.3 (22/11/2012)

  • support for older versions of TeamCity

0.5.2 (2/11/2012)

  • rename service
  • remove button moved to actions dropdown

0.5.1 (31/10/2012)

  • services show when build is in progress

0.5.0 (25/10/2012)

  • show when a build is in progress (all except Bamboo)
  • fixed: only failed builds could be configured for Jenkins
  • options page UI fixes

0.4.3 (9/10/2012)

  • fixed issue when failed builds count was incorrect

0.4.2 (19/09/2012)

  • feedback icon in popup window

0.4.1 (19/09/2012)

  • configuration button in the popup window
  • UI fixes on the options page

0.4.0 (13/09/2012)

  • show popup with build status when icon clicked

0.3.2.2 (6/09/2012)

  • "Add service" UI fixes and enhancements
  • don't display badge if no services configured

0.3.2.1 (6/09/2012)

  • fixed package installation for Mac and Linux

0.3.2 (6/09/2012)

  • new "add service" page

0.3.1 (22/08/2012)

  • Added new services (CC.NET, CC.rb, CC, Jenkins, TeamCity 7, ThoughtWorks GO)

0.3.0 (16/08/2012)

  • First public version
  • Support for cctray XML reporting format
  • Automated build (using Travis-CI)
  • Upgraded to Chrome extensions version 2 manifest

0.2.0 (8/04/2012)

  • Lots of UI improvements, using Twitter bootstrap

0.1.0 (23/12/2011)

  • First version with Bamboo support