Skip to content

BuildRadiator/BuildRadiator

Repository files navigation

Here is an example of a build radiator

Radiator pic

An online service for all

buildradiator.org

The service above will hold radiator state for 10 builds, per radiator. You can go and make your own radiator on it, and then place a TV/monitor on a wall somewhere to show that page in a browser. You could choose a consumer device like a SmartTV, Amazon Fire TV stick, AppleTV, etc. You can dedicate a regular PC too, but you need to solve the "how to leave it logged in, and the screen-saver off" problem yourself.

Security through obscurity

We admit, buildradiator.org is security through obscurity proposition.

Every time a radiator is created, there's a random code that is generated. An example is ueeusvcipmtsb755uq (made for the demo radiator that can't be updated). Unless someone knows the code, they can't see your radiator. There is no list of radiators either. If you lost your radiator code, just made a new one and the old one will be deleted after a couple of weeks of non-use.

The server is never given parts of the URL to the right of the #.

Creating Radiators

See Wiki Page. Also detailed there is info on locking the radiator to certain IP addresses.

Updating the radiator from your CI daemon

See Wiki Page. Also detailed there is how a secret is passed to buildradiator.org that ensures that only approved CI jobs update build statuses.

Navigating to your radiator

Type https://buildradiator.org/r#<the radiator ID frome the create step>/A_Long_Decription_For_Your_Radiator

Be aware that a HTML page is loaded in the browser for https://buildradiator.org/r and that in turn seeks a JSON payload - https://buildradiator.org/r/<the radiator ID frome the create step>. Any other attribute to the right of the # is not passed to the browse so you can knock yourself out with secret project names, etc. Read more on the wiki page

Putting a screen up in your guest WiFi

See Wiki Page on consumer displays

Building this technology yourself

Current build status:

Build Radiator for this repo

Command to run the build:

mvn clean install

In about 30 seconds, the build does:

  1. compile,
  2. unit test compile,
  3. unit test invocation,
  4. integration test invocation,
  5. functional test invocation (WebDriver - but invisible)
  6. distribution creation (uberjar style jar)

Build prerequsites

  1. Chromedriver.exe for your platform (see quick installation instructions here)
  2. Maven 3+

Making Selenium's browser invisible

mvn clean install -DHEADLESS=true

Deploying to Google AppEngine

This is to the "Flexible" AppEngine for Java variant, and not the traditional one. It also needs a 'datastore' that is connected to the AppEngine app/project, but the schema is setup automatically on boot.

mvn -Pgae -DskipTests appengine:deploy