avivasolutionsnl / Beacon

A TeamCity or Azure DevOps monitoring tool that uses a Delcom USB LED or Shelly bulb to notify your teams
https://chocolatey.org/packages/beacon
Apache License 2.0
5 stars 4 forks source link
azure-devops build-tool c-sharp chocolatey ci teamcity teamcity-monitoring

CI

Beacon

A monitoring tool for Azure DevOps and Teamcity that uses a Delcom USB LED or Shelly Bulb light to notify your teams.

Chocolate

How to install

The easiest deployment mechanism is to install Chocolatey and run the following command-line to install the Chocolate package:

choco install beacon

Then run beacon and observe the command-line arguments.

Example usage

Azure Devops

Using a public Azure Devops project and running continuously for definition id (ie. build) #1 and #2:

beacon azuredevops --url https://dev.azure.com/my-public-project --project MyProject --builds=1 2

Or, using a personal access token (e.g. 1234567890ab, see here for how to obtain a token) and for all definitions:

beacon azuredevops --url https://dev.azure.com/my-public-project --project MyProject --builds=* --token 1234567890ab

TeamCity

Using a named TeamCity account and running continuously:

beacon teamcity --url=http://yourteamcity.com --username=username --password=password --builds=build_id_1 build_id_2 etc

Or, alternatively using TeamCity guest access, running only once and with verbose logging:

beacon teamcity --url=http://yourteamcity.com --guestaccess --runonce --verbose --builds=build_id_1 build_id_2 etc

Using a Shelly Bulb

First install your Shelly Bulb following the installation instructions. After your bulb is installed, look up the device IP address of it under "Settings > Device Information", e.g. 10.25.31.27.

Now use the obtained IP to connect Shelly:

beacon azuredevops --url https://dev.azure.com/avivasolutions-public --project Nyxie --builds 10 --device shelly --shellyurl http://10.25.31.27

Backlog

Why another

My original idea was triggered by TeamFlash, a prototype implementation made by Readify. Unfortunately, the quality of that code was way below anything I can work with, so I planned to contribute a big list of improvements as well as more configuration options. However, it took me several emails, tweets and DMs and a month of patience just to get a single pull request accepted. So I see no point in working with a fork. Instead, I decided to take their code as a starting point and revive the product.