Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mitocgroup/recink
REciNK - Rethink Continuous Integration for JavaScript Applications
https://github.com/mitocgroup/recink
continuous-integration coverage e2e-testing javascript mocha npm testcafe testing travis unit-testing
Last synced: about 2 months ago
JSON representation
REciNK - Rethink Continuous Integration for JavaScript Applications
- Host: GitHub
- URL: https://github.com/mitocgroup/recink
- Owner: MitocGroup
- License: mpl-2.0
- Created: 2017-05-09T12:24:14.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-18T13:39:13.000Z (8 months ago)
- Last Synced: 2024-10-27T04:10:58.479Z (about 2 months ago)
- Topics: continuous-integration, coverage, e2e-testing, javascript, mocha, npm, testcafe, testing, travis, unit-testing
- Language: JavaScript
- Homepage: https://www.npmjs.org/package/recink
- Size: 57.1 MB
- Stars: 14
- Watchers: 14
- Forks: 5
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
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 # 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