/dashing-reporter

Logs Continuous Integration metrics to Amazon DynamoDB.

Primary LanguageJavaScriptMIT LicenseMIT

Dashing Reporter

Logs Continuous Integration metrics to Amazon DynamoDB.

Build Status

Installation

npm install dashing-reporter --save-dev

Usage

./node_modules/.bin/dashing-reporter --help

By default, dashing-reporter will use a local configuration and not attempt to connect to AWS.

To use a custom config, copy .dashingreporter.default.json to .dashingreporter.json to the root of your project and modify to meet your needs.

If you want to use Environmental Variables (and you should, because hard-coding credentials is a terrible idea), remove the corresponding settings from .dashingreporter.json and set them in your CI service.

AWS Environmental Variable .dashingreporter.json
AWS_ACCESS_KEY_ID accessKeyId
AWS_SECRET_ACCESS_KEY secretAccessKey

A working Travis CI configuration is included; see .travis.yml for details. This should theoretically work with Circle CI and others, but it hasn't been explicitly tested.

Payload

Each Item has the following attributes:

Attribute Description
branch For builds not triggered by a pull request this is the name of the branch currently being built; whereas for builds triggered by a pull request this is the name of the branch targeted by the pull request (in many cases this will be master).
buildNumber The number of the current build (for example, 4).
commit The commit that the current build is testing.
coverageBranchesPercentage Istanbul percentage of branches covered.
coverageFunctionsPercentage Istanbul percentage of functions covered.
coverageLinesPercentage Istanbul percentage of lines covered.
coverageStatementsPercentage Istanbul percentage of statements covered.
eslintErrorCount ESLint Error count.
eslintWarningCount ESLint Warning count.
jobNumber The number of the current job (for example, 4.1.
language Primary interpreting language name, like node_js.
languageVersion Primary interpreting Language version, like 6.7.
repoSlug The slug (in form: owner_name/repo_name of the repository currently being built (for example, fluxsauce/dashing-reporter)
testResult Set to 0 if the build is successful and 1 if the build is broken.
timestamp Current time in ISO 8601 formatted string.

Local Development

Install DynamoDB locally.

If you have Homebrew installed, you can use the dynamodb-local formula.

brew install dynamodb-local

If you don't have Java:

brew cask install java

You have two options for running the DynamoDB server, with persistence:

dynamodb-local --sharedDb

The database will be stored in /usr/local/var/data/dynamodb-local.

Alternative, you can run it in memory with no persistence:

dynamodb-local --sharedDb -inMemory

Storage

For both hosted and local development, a DynamoDB table is required to store build metadata. The structure can be created with:

dashing-reporter --createTable