Env и CI
Переменные окружения
Заголовок раздела «Переменные окружения»| Переменная | Что задаёт |
|---|---|
VKMA_ACCESS_TOKEN (или MINI_APPS_ACCESS_TOKEN) |
Токен доступа |
VKMA_APP_ID (или MINI_APPS_APP_ID) |
ID приложения |
VKMA_ENVIRONMENT (или MINI_APPS_ENVIRONMENT) |
Целевое окружение |
VKMA_TEST_GROUP |
Имя тестовой группы |
VKMA_TIMEOUT |
Дедлайн очереди, секунд |
CI_URLS |
Печатать сырые ключи URL (легаси-режим) |
NO_COLOR |
Отключить цвета |
MINI_APPS_*-алиасы поддерживаются навсегда, без депрекации. Окружение нормализуется без учёта регистра: dev/development → dev, prod/production → production, both/all → both. Приоритет: флаги CLI > env > конфиг > дефолты.
Токен разрешается в порядке: env-переменная > поле accessToken в конфиге > сохранённые креды vkma-deploy login ($XDG_CONFIG_HOME/vkma/deploy/credentials.json, права 0600) > fallback — токен, сохранённый официальным @vkontakte/vk-miniapps-deploy. Токен маскируется в любом выводе — в логах, ошибках и --verbose, включая query-строки. Для CI держи его в секрете раннера и передавай через env, не через конфиг.
CLI по умолчанию неинтерактивен и CI-safe: промпты отключены при переменной CI, не-TTY stdin и режимах --json/--quiet. Токен держи в секрете раннера:
- run: pnpm build- run: npx vkma-deploy --update-prod --no-update-dev env: VKMA_ACCESS_TOKEN: ${{ secrets.VK_TOKEN }}Что учесть в CI:
- URL-политика обязательна. Неинтерактивный прогон без явных
--update-prod/--no-update-prodи--update-dev/--no-update-dev(или полейupdateProd/updateDevв конфиге) падает сE_UPDATE_FLAG_REQUIRED, exit1. Закрепи политику один раз — флагами или в конфиге. --json— события деплоя строка-за-строкой (NDJSON) на stdout для парсинга; логгер пишет в stderr.vkma-deploy config— дешёвый fail-fast степ: печатает резолвнутый конфиг и падает на ошибке валидации до сборки архива.--verbose— отладка упавших прогонов: HTTP-запросы дампятся в лог с замаскированными секретами.--dry-run— проверить конфиг и собрать архив без единого сетевого запроса; удобен как smoke-степ после сборки.- Код подтверждения VK (событие очереди 205) в CI взять неоткуда — прогон упадёт, а не повиснет на промпте. Подавай код программно через library API:
deploy({ confirmCode: async () => "123456" }). logoutв CI не нужен: креды живут только там, где ты делалlogin.
Весь трафик CLI (VK API, загрузка архива, OAuth) можно пустить через HTTP(S)-прокси. Три источника, побеждает первый найденный:
- флаг
--proxy http://proxy.corp:8080; - переменные
HTTP_PROXY/HTTPS_PROXY(lowercase-варианты тоже работают и выигрывают, если заданы оба — как в Node); - поле
proxyв конфиге.
NO_PROXY из окружения уважается всегда. Поддерживаются http:// и https:// (креды в URL маскируются в выводе); socks — нет. Нужен Node >= 22.21 / 24 (нативная поддержка env-proxy): на старших рантаймах CLI предупредит и пойдёт напрямую. Прокси активирует только CLI — библиотечные потребители маршрутизируют трафик сами через fetchImpl.
- CLI — команды, флаги, exit-коды.
- Конфигурация — все поля конфига.