# recink

> Rethink CI for JavaScript applications

Latest version **1.15.4** (published 2018-06-20) · MPL-2.0 license · 0 weekly downloads

## Install

```sh
npm install recink
pnpm add recink
yarn add recink
bun add recink
```

Provides the command `recink`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; large bundle.

Negative: insecure dependencies; abandoned.

## Facts

| | |
|---|---|
| Version | 1.15.4 |
| Published | 2018-06-20 |
| First published | 2017-06-27 |
| Weekly downloads | 0 |
| License | MPL-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0 |
| Dependencies | 26 |
| Unpacked size | 68 MB |
| Known vulnerabilities | 0 (+3 in 3 direct dependencies) |
| Install scripts | yes |
| GitHub stars | 14 |
| Author | Mitoc Group |
| Maintainers | mitocgroup |
| Keywords | REciNK, Runner, Testing, End2End, Unit, Terraform, Development, Codeclimate, Tools, Coverage |

## Links

- npm: https://www.npmjs.com/package/recink
- Repository: https://github.com/MitocGroup/recink
- Issues: https://github.com/MitocGroup/recink/issues
- npm.io page: https://npm.io/package/recink

## Dependencies (26)

- [jag](https://npm.io/package/jag.md) ^1.0.14
- [ora](https://npm.io/package/ora.md) ^1.2.0
- [chai](https://npm.io/package/chai.md) ^4.1.2
- [pify](https://npm.io/package/pify.md) ^3.0.0
- [chalk](https://npm.io/package/chalk.md) ^1.1.3
- [merge](https://npm.io/package/merge.md) ^1.2.0
- [mocha](https://npm.io/package/mocha.md) ^5.0.3
- [print](https://npm.io/package/print.md) ^1.0.2
- [sinon](https://npm.io/package/sinon.md) git+https://github.com/MitocGroup/sinon.git
- [yamljs](https://npm.io/package/yamljs.md) ^0.2.10
- [aws-sdk](https://npm.io/package/aws-sdk.md) ^2.198.0
- [caporal](https://npm.io/package/caporal.md) ^0.9.0
- [md5-hex](https://npm.io/package/md5-hex.md) ^2.0.0
- [yaml-js](https://npm.io/package/yaml-js.md) ^0.1.5
- [fs-extra](https://npm.io/package/fs-extra.md) ^5.0.0
- [istanbul](https://npm.io/package/istanbul.md) ^0.4.5
- [md5-file](https://npm.io/package/md5-file.md) ^3.1.1
- [columnify](https://npm.io/package/columnify.md) ^1.5.4
- [dot-object](https://npm.io/package/dot-object.md) ^1.7.0
- [package-hash](https://npm.io/package/package-hash.md) ^2.0.0
- [pretty-bytes](https://npm.io/package/pretty-bytes.md) ^4.0.2
- [global-modules](https://npm.io/package/global-modules.md) ^1.0.0
- [progress-stream](https://npm.io/package/progress-stream.md) ^2.0.0
- [resolve-package](https://npm.io/package/resolve-package.md) ^1.0.1
- [readdir-enhanced](https://npm.io/package/readdir-enhanced.md) ^1.5.2
- [sandboxed-module](https://npm.io/package/sandboxed-module.md) git+https://github.com/MitocGroup/node-sandboxed-module.git#v2.0.5

## Alternatives

- [duck](https://npm.io/package/duck.md) — 4.2M weekly downloads
- [ava](https://npm.io/package/ava.md) — 560.2K weekly downloads
- [storybook-addon-module-mock](https://npm.io/package/storybook-addon-module-mock.md) — 71.7K weekly downloads
- [vest](https://npm.io/package/vest.md) — 50.1K weekly downloads
- [@ethereum-waffle/mock-contract](https://npm.io/package/@ethereum-waffle/mock-contract.md) — 40.0K weekly downloads

## Recent versions

- 1.15.4 (latest) — 2018-06-20
- 1.14.12 (beta) — 2018-04-18
- 1.15.3 — 2018-05-28
- 1.15.2 — 2018-05-24
- 1.15.1 — 2018-05-21
- 1.15.0 — 2018-04-19
- 1.14.11 — 2018-04-17
- 1.14.10 — 2018-04-12
- 1.14.9 — 2018-04-05
- 1.14.8 — 2018-02-28
- 1.14.7 — 2018-02-16
- 1.14.6 — 2018-02-07
- 1.14.5 — 2018-02-05
- 1.14.4 — 2018-01-31
- 1.14.3 — 2018-01-31
- … 50 more at https://npm.io/package/recink/versions

## README

REciNK - Rethink Continuous Integration for JavaScript Applications
===================================================================

[![NPM Version](https://badge.fury.io/js/recink.svg?maxAge=0)](https://npmjs.org/package/recink)
[![Build Status](https://travis-ci.org/MitocGroup/recink.svg?branch=master&maxAge=0)](https://travis-ci.org/MitocGroup/recink)
[![Code Climate](https://codeclimate.com/github/MitocGroup/recink/badges/coverage.svg?maxAge=0)](https://codeclimate.com/github/MitocGroup/recink)
[![API Docs](https://mitocgroup.github.io/recink/api/badge.svg?maxAge=0)](https://mitocgroup.github.io/recink/api/)


REciNK was born from our need to automate the execution of JavaScript tests.
We quickly realized that we need to RETHINK (aka `REciNK`) entire Continuous
Integration process for JavaScript applications. Similar to `.travis.yml`, we
empower developers to simply drop the `.recink.yml` config file into GitHub
repository and follow below Getting Started guide to use it as part of their
Continuous Integration pipeline (maybe even extend to Continuous Deployment).


# Features

- [Install](https://github.com/MitocGroup/recink#installation).
[Configure](https://github.com/MitocGroup/recink/blob/master/docs/guide.md#configuring-github-project).
[Use](https://github.com/MitocGroup/recink#usage).
- Multi-module support for
[consolidated coverage](https://github.com/MitocGroup/recink/blob/master/bin/templates/.recink.yml#L50).
- Built-in support for [Travis](https://travis-ci.org),
[NPM](https://www.npmjs.com), [Chai](http://chaijs.com),
[Mocha](http://mochajs.org), [Istanbul](https://istanbul.js.org),
[TestCafe](https://devexpress.github.io/testcafe).
- Amazon S3 powered
[caching](https://github.com/MitocGroup/recink/blob/master/bin/templates/.recink.yml#L10).
- [Extendable](https://github.com/MitocGroup/recink#components).
[Debuggable](https://github.com/MitocGroup/recink#debugging).
[Documented](https://github.com/MitocGroup/recink#documentation).


# Prerequisites

- [x] Git >= v1.x
- [x] Node.js >= v6.x
- [x] NPM >= v3.x

> Use [nvm](https://github.com/creationix/nvm#installation) to install and
manage different versions of Node.js; Ideally, use v8+ for faster performance


# Installation

`npm install -g recink`


# Getting Started

@See [User Guide](https://github.com/MitocGroup/recink/blob/master/docs/guide.md#configuring-github-project)


# Usage

```shell
recink run [name] [path]               # Run a generic component
recink run unit [path]                 # Run unit tests                              
recink run e2e [path]                  # Run end to end tests                        
recink configure recink [path]         # Configure REciNK                            
recink configure travis [path]         # Configure Travis                            
recink travis encrypt [path]           # Encrypt Travis environment variables        
recink travis lint [path]              # Lint Travis configuration                   
recink component generate [path]       # Generate REciNK boilerplate component       
recink component add [name...]         # Add an REciNK component to the registry     
recink component remove [name...]      # Remove an REciNK component from the registry
recink component list                  # List REciNK components from the registry    
recink help <command>                  # Display help for a specific command   
```


# Debugging

To enable debug mode for both `unit` and `e2e` runtimes use `DEBUG=* recink run unit|e2e`.

[TestCafe](https://devexpress.github.io/testcafe) offers amazing debugging capabilities
[documented here](http://devexpress.github.io/testcafe/documentation/test-api/debugging.html).

We are using [Puppeteer](https://github.com/GoogleChrome/puppeteer)
as default browser, which provides native debugging capabilities
[documented here](https://github.com/GoogleChrome/puppeteer#debugging-tips).

> Use `-v` flag to enable verbose mode on any `recink` command.


# Supported CI Platforms

- [x] [Travis](https://travis-ci.org)
- [x] [Travis Pro](https://travis-ci.com)


# Documentation

- [x] [Quick Start Guide](https://github.com/MitocGroup/recink/blob/master/docs/guide.md)
- [x] [Crafting Components](https://github.com/MitocGroup/recink/blob/master/docs/component-guide.md)
- [x] [API Docs](https://mitocgroup.github.io/recink/api/identifiers.html)
- [x] [Module Diagram](https://mitocgroup.github.io/recink/module-diagram.html)
- [x] [FAQ](https://github.com/MitocGroup/recink/blob/master/docs/faq.md)


# Components

- :house: [CodeClimate](https://github.com/MitocGroup/recink/blob/master/components/codeclimate/README.md)
- :house: [Snyk.io](https://github.com/MitocGroup/recink/blob/master/components/snyk/README.md)
- :house: [PageSpeed](https://github.com/MitocGroup/recink/blob/master/components/pagespeed/README.md)
- :house: [Comment](https://github.com/MitocGroup/recink/blob/master/components/comment/README.md)
- :house: [Terraform](https://github.com/MitocGroup/recink/blob/master/components/terraform/README.md)

> Explore in-house built components [here](https://github.com/MitocGroup/recink/tree/master/components)


# Projects Using "REciNK"

- [Deep Framework](https://github.com/MitocGroup/deep-framework/blob/master/.recink.yml)

> To add you project to this list please open a PR ;)


# Roadmap

- [x] Implement smart cache invalidation
- [x] Add support for external components
- [x] Add support for fully automated `Travis` configuration 
- [x] Add support for End-to-End tests
- [x] Add component development guide
- [x] Add unit tests for critical functionality
- [x] Decouple e2e component
- [ ] Decouple unit component
- [ ] Decouple coverage component
- [ ] Add support for different CI platforms
- [ ] Craft a cool logo for the project :alien:
- [ ] Add unit tests to cover at least 80% of codebase


# Sponsors

This repository is being sponsored by:

- [Mitoc Group](https://www.mitocgroup.com)
- [AdTechMedia](https://www.adtechmedia.io)


# License

REciNK is released under the [MIT license][1].

[1]: https://github.com/MitocGroup/recink/blob/master/LICENSE.md

---
_Source: https://npm.io/package/recink · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
