npm package: @redcup/vk-mini-cli
Description: VKMA CLI
Author: e.zavalishin
Latest version: 0.2.17

VMA CLI
=================

VKMA CLI

[![vkma](https://img.shields.io/badge/cli-vkma-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/@redcup/vk-mini-cli.svg)](https://npmjs.org/package/@redcup/vk-mini-cli)
[![Downloads/week](https://img.shields.io/npm/dw/@redcup/vk-mini-cli.svg)](https://npmjs.org/package/@redcup/vk-mini-cli)
[![License](https://img.shields.io/npm/l/@redcup/vk-mini-cli.svg)](https://github.com/oclif/hello-world/blob/main/package.json)


* [Установка](#установка)
* [Команды](#команды)
* [Примеры использования](#примеры-использования)

# Установка

## Глобально
```sh-session
$ npm install -g @redcup/vk-mini-cli
```

## Локально в проект
Может пригодиться для вашей CI
```sh-session
$ npm install @redcup/vk-mini-cli
```

# Команды

* [`vkma deploy`](#vkma-deploy)
* [`vkma tunnel`](#vkma-tunnel)

## `vkma deploy`

Деплой на хостинг статики


<details>
<summary>Опции</summary>

| Переменная              | Опция         | Описание                                                                                                                  |
|-------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------|
| VKMA_APP_ID             | --appId       | **Обязательно**. АЙДИ мини-приложения                                                                                     |
| VKMA_ACCESS_TOKEN       | --accessToken | Сервисный ключ мини-приложения. Необходим для деплоя через CI и для работы с тестовыми группами локально (временно)       |
| VKMA_DEPLOY_GROUP_NAME  | --groupName   | Название группы для деплоя в тестовую группу. %branch - для подстановки текущей git ветки                                 |
| VKMA_DEPLOY_ENDPOINTS   | --endpoints   | По-умолчанию: **web:index.html,mobile:index.html,mvk:index.html**. Точки входа для урлов.                                 |
| VKMA_DEPLOY_ENVIRONMENT | --environment | По-умолчанию: **all**. Куда подставить урлы. Возможные значения: prod -- только в прод. dev -- только в дев. all -- в оба |
</details>

```
  $ vkma deploy --appId <value> [--groupName <value> --accessToken <value>] [--staticPath <value>]
    [--environment production|dev|all] [--endpoints <value>]
```

## `vkma tunnel`

Туннель

<details>
<summary>Опции</summary>

| Переменная             | Опция          | Описание                                                                                 |
|------------------------|----------------|------------------------------------------------------------------------------------------|
| VKMA_APP_ID            | --appId        | **Обязательно**. АЙДИ мини-приложения                                                    |
| VKMA_ACCESS_TOKEN      | --accessToken  | Сервисный ключ мини-приложения. Необходим для туннеля в тестовую группу (временно).      |
| VKMA_TUNNEL_GROUP_NAME | --groupName    | Название группы для туннеля в тестовую группу. %me - для подстановки имени пользователя  |
| PROXY_HOST             | --host         | По-умолчанию: **localhost**. Хост вашего dev-сервера                                     |
| PROXY_PORT             | --port         | По-умолчанию: **3000**. Порт вашего dev-сервера                                          |
| PROXY_HTTP_PROTO       | --httpProtocol | По-умолчанию: **http**. Возможные значения: http,https. HTTP протокол вашего dev-сервера |
| PROXY_WS_PROTO         | --wsProtocol   | По-умолчанию: **ws**. Возможные значения: ws,wss. WS протокол вашего dev-сервера         |
| PROXY_TIMEOUT          | --timeout      | По-умолчанию: **5000**. Таймаут подключения к дев-серверу, в миллисекундах               |
</details>

```
  $ vkma tunnel [--appId <value>] [--httpProtocol http|https] [--wsProtocol ws|wss] [--host <value>]
    [--port <value>] [--timeout <value>] [--groupName <value> --accessToken <value>]
```
<!-- commandsstop -->


# Примеры использования

На данный момент API для тестовых групп не поддерживает работу с пользовательским ключом, из-за чего необходимо использовать **сервисный ключ** приложения. Чтобы это было не так больно: можно создать файл `.env.vkma`, добавить его в `.gitignore`, прописать туда `VKMA_ACCESS_TOKEN`

И с помощью пакета `dotenv` (или другого аналога) прокидывать переменные


## При разработке

В `package.json` добавить в `scripts` следующие команды:

```json
{
  "deploy:prod": "vkma deploy --appId=000",
  "deploy:stage": "dotenv -e .env.vkma vkma deploy -- --appId=111 --groupName=%branch",
  "tunnel": "dotenv -e .env.vkma vkma tunnel -- --appId=111 --groupName=%me"
}
```

### `(yarn/npm run) deploy:prod`

Произведет загрузку бандла и установку урлов с подтверждением в приложение `000`

### `(yarn/npm run) deploy:stage`

Произведет загрузку бандла и создание/обновление группы тестирования с названием текущей git ветки для приложения `111`

### `(yarn/npm run) deploy:tunnel`

Произведет поднятие туннеля с вашим локальным хостом и подставит урл в тестовую группу с названием вашей учетной записи ОС