# unleash-cli

> 🚧 WORK IN PROGRESS 🚧 (Specially for Android)

Latest version **1.1.7** (published 2018-01-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install unleash-cli
pnpm add unleash-cli
yarn add unleash-cli
bun add unleash-cli
```

Provides the command `unleash`.

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.7 |
| Published | 2018-01-23 |
| First published | 2018-01-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | 8.9.4 |
| Dependencies | 24 |
| Known vulnerabilities | 0 (+10 in 4 direct dependencies) |
| Install scripts | no |
| Maintainers | rafa93br |

## Links

- npm: https://www.npmjs.com/package/unleash-cli
- npm.io page: https://npm.io/package/unleash-cli

## Dependencies (24)

- [ejs](https://npm.io/package/ejs.md) ^2.5.7
- [joi](https://npm.io/package/joi.md) ^13.1.1
- [ora](https://npm.io/package/ora.md) ^1.3.0
- [find](https://npm.io/package/find.md) ^0.2.8
- [chalk](https://npm.io/package/chalk.md) ^2.3.0
- [https](https://npm.io/package/https.md) ^1.0.0
- [ramda](https://npm.io/package/ramda.md) ^0.25.0
- [yargs](https://npm.io/package/yargs.md) ^11.0.0
- [is-url](https://npm.io/package/is-url.md) ^1.2.2
- [graphql](https://npm.io/package/graphql.md) ^0.12.3
- [pkg-dir](https://npm.io/package/pkg-dir.md) ^2.0.0
- [replace](https://npm.io/package/replace.md) ^0.3.0
- [fs-extra](https://npm.io/package/fs-extra.md) ^5.0.0
- [ascii-art](https://npm.io/package/ascii-art.md) ^1.4.2
- [diacritics](https://npm.io/package/diacritics.md) ^1.3.0
- [node-fetch](https://npm.io/package/node-fetch.md) ^1.7.3
- [simple-git](https://npm.io/package/simple-git.md) ^1.89.0
- [typescript](https://npm.io/package/typescript.md) ^2.6.2
- [@types/node](https://npm.io/package/@types/node.md) ^8.5.2
- [graphql-tag](https://npm.io/package/graphql-tag.md) ^2.6.1
- [download-file](https://npm.io/package/download-file.md) ^0.1.5
- [graphql-request](https://npm.io/package/graphql-request.md) ^1.4.1
- [replace-in-file](https://npm.io/package/replace-in-file.md) ^3.1.0
- [child-process-promise](https://npm.io/package/child-process-promise.md) ^2.2.1

## Recent versions

- 1.1.7 (latest) — 2018-01-23
- 1.1.6 — 2018-01-23
- 1.1.5 — 2018-01-23
- 1.1.4 — 2018-01-23
- 1.1.3 — 2018-01-23
- 1.1.2 — 2018-01-23
- 1.1.1 — 2018-01-23
- 1.1.0 — 2018-01-23

## README

# UnleasH

🚧 WORK IN PROGRESS 🚧 (Specially for Android)

![UnleasH](https://raw.githubusercontent.com/rafaelcorreiapoli/unleash-cli/master/resources/demon.jpg)

*" Everything you need to make money! "*



## Installation
```
npm install -g unleash-cli
```

## Usage
1. Create a folder for your project
```
mkdir my-project
cd my-project
```
2. Unleash the project seed
```
unleash project seed react-native -n "Quack Pack"
```

3. Edit the generated json file (Most of the data will be already filled in for you). It looks like this
```
{
  "type": "REACT_NATIVE",
  "template": "git@github.com:thunder-js/react-native-ts-lab.git",
  "name": "Quack Pack",
  "node": {
    "packageName": "quack-pack"
  },
  "facebook": {
    "appId": "",
    "appDisplayName": "Quack Pack"
  },
  "assets": {
    "icon": "https://my.icon/icon.png",
    "splash": "https://my.splash/splash.png"
  },
  "ios": {
    "displayName": "Quack Pack",
    "projectName": "QuackPack",
    "bundleIdentifier": "com.quack-pack.app",
    "googleMaps": {
      "apiKey": ""
    },
    "fastlane": {
      "itcTeamName": "Rafael Ribeiro Correia",
      "itcTeamId": "WRM4UPAZ5R",
      "teamName": "Rafael Ribeiro Correia",
      "teamId": "118298111",
      "appleId": "rafael.correia.poli@gmail.com",
      "certificatesRepoUrl": "git@github.com:rafaelcorreiapoli/apple-certificates.git",
      "slackUrl": "https://hooks.slack.com/services/hihihi/hahahaha/hehehe"
    },
    "codePush": {
      "name": "QuackPack-iOS",
    }
  },
  "android": {
    "displayName": "Quack Pack",
    "bundleIdentifier": "com.quack-pack.app",
    "codePush": {
      "name": "QuackPack-Android",
    }
  }
}
```

4. Unleash a new project from that seed
```
unleash project grow ./seed.json
```

5. Enjoy!
- You will have a production ready base project with a lot of common features, most of them using reusable components from (https://github.com/thunder-js), including:
  - Storybook (with HMR)
  - Storyshots
  - Haul packager for symlinks
  - TypeScript
  - CodePush
  - Fastlane
  - Snapshot testing
  - Detox E2E tests
  - Analytics
  - Crashlytics
  - Authentication with Facebook & E-mail (checkout https://github.com/thunder-js/storm-auth)
  - Apollo 2.0
  - Forms with `react-final-form`
  - Onboarding (checkout https://github.com/thunder-js/storm-onboarding)
  - Basic App flow (checkout https://github.com/thunder-js/storm-foundation)


- A circleCI config will be generated for you, just go to circleCI (https://circleci.com/) and add your project
The pipeline works as follows:
  - When you open a PR on Github, circleCI will build and test (unit, integration, e2e with detox) the project, allowing abort early workflow for bad PRs
  - When something is merged to master, circleCI will build and test the project, and then upload it to test distribution mechanisms (TestFlight & GooglePlay Beta Store)
  - After your beta users approve the app (or any QA process) you have to manually promote the app to production on circleCI dashboard. This will cause the build to be uploaded to the distribution stores (AppStore & Google Play)
 
- CodePush will be configured for you, use these scripts to update the app for your users: (I'm still studying how to integrate this in the CI pipeline)
```
yarn run release-push:ios
```
```
yarn run release-push:android
```
- All the iOS certificates will be provisioned and uploaded to the specified git repo (https://codesigning.guide/)
- The app will be created on AppStore and iTunes Connect, to *manually* push a new version to TestFlight, just run this script:
```
yarn run beta-store:ios
```
- To *manually* release a new version to AppStore, just run:
```
yarn release-store:ios
```

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