Coder Social home page Coder Social logo

minduca / gecko-ci Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 200 KB

A lightweight build monitor that handles IoT gadgets and brings CI feedbacks to the real world

License: GNU General Public License v3.0

TypeScript 70.36% HTML 29.64%
iot nodejs nodejs-modules light-bulbs monitor gecko-ci typescript lifx tfs build-automation

gecko-ci's Introduction

gecko-ci

Gecko-ci is a lightweight plugin that improves engagement of team members by providing physical feedback of the status of the build. It creates a link between a build server and smart RGB light bulbs, displaying specific colors for each build status.

Gecko-ci currently supports only TFS as build server and LIFX Bulbs as extreme feedback device.

Dependency Status npm Stories in Ready

Build Status Colors

When the build status change, the color of the light bulb changes accordingly.

Status change Color
buildSucceeded Green
buildPartiallySucceeded Orange
buildFailed Red

Install

node.js & bower

npm install gecko-ci --save
bower install gecko-it --save

Quick Start

Define one or more connections to your build server(s), create one or more build monitors associated to these connections and link each monitor to light bulbs that will display the status of the build.

node.js

let gecko = require("gecko-ci")

browser

let gecko = window.$gecko
let monitor = gecko.watchBuilds({
    connections: [
        {
            name: "my connection 01",
            technology: "tfs",
            collection: "DefaultCollection",
            server: "https://foo.visualstudio.com/",
            user: "[email protected]",
            personalToken: "xxxXXXxxXXXXxxXXXXxxxXXXXxxXXXXxxxxxXXXXxxx"
        }
    ],
    buildMonitors: [
        {
            name: "my monitor 01",
            teamProject: "MyTeamProject",
            connectionName: "my connection 01"
        }
    ],
    lightBulbs: [
        {
            name: "my bulb config 01",
            technology: "lifx",
            buildMonitorsNames: ["my monitor 01"],
            selector: "all",
            personalToken: "yyyyYYYYyyYYyyyYYYyyyyyyYYYYyyyyyYYYyyyyyyYYyyyy"
        }
    ]
});

To stop the application, you simply do

monitor.stopWatchingBuilds();

Options

connections

Array of connections to one or more build servers.

Attribute Type Supported values Description
name String - Required Unique name (id) of the connection.
technology String "tfs" Required Technology of the build server. TFS is currently the only build server supported.
collection String - Required Name of the Team Project Collection on TFS.
server String - Required Address of the build server.
user String - Required User account to authenticate to the build server via REST api.
personalToken String - Required App token for authorizations on the build server. For TFS, take a look at Create personal access tokens to authenticate access. Only the scope Build (read) is required. The token supplied must be associated to the value supplied on user.

buildMonitors

Array of monitors that connect to build servers and check the build status

Attribute Type Supported values Description
name String - Required Unique name (id) of the build monitor.
teamProject String - Required Name of the Team Project on TFS.
connectionName String - Required id of the connection that will be used by the monitor. it must be an existing options.connections[].name.
definitions
queues
type
requestedFor
reasonFilter
tagFilters
propertyFilters
String - Optional TFS parameters that are also supported. Check the TFS Builds api for the MSDN documentation of these parameters. The TFS api documentation contains many other parameters that aren't listed here, but gecko-ci will handle them. Although it's strongly recommended that you don't override these arguments that aren't listed here, you can play with them at your own risk.

lightBulbs

Array of light bulbs that display the status of one or more build monitors

Attribute Type Supported values Description
name String - Required Unique name (id) of the light bulb.
technology String "lifx" Required Technology of the light bulb. LIFX is currently the only bulb supported.
buildMonitorsNames String[] - Required array of ids of build monitors that are linked to this light bulb configuration. it must be an existing options.buildMonitors[].name.
selector String - Required A LIFX selector. Check the LIFX selectors for the documentation of this argument.
personalToken String - Required App token for authorizations on the LIFX server. Check the Account settings in order to generate a token.

License

GPL-3.0

gecko-ci's People

Contributors

minduca avatar

Stargazers

 avatar

Watchers

 avatar  avatar

gecko-ci's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.