Перейти к основному содержимому

Деплой из папки

Обычный путь приложения — подключённый репозиторий: каждый push собирает и публикует новую версию. Но иногда репозитория нет или он не нужен: попробовать платформу, выложить статический сайт, проверить правку, которую ещё не хочется коммитить, или отдать на сборку результат чужого конвейера.

Для этого есть tatnet deploy — он выкладывает то, что лежит в папке.

cd ~/проекты/лендинг
tatnet deploy

Первый запуск создаёт приложение по имени папки и запоминает его в .tatnet/project.json; следующие выкладывают туда же. В стандартный вывод уходит только адрес, поэтому так тоже можно:

url=$(tatnet deploy --logs) # лог сборки идёт в stderr, адрес — в stdout

Что уезжает на сборку​

Папка целиком, кроме:

Исключается всегдаПочему
.gitистория сборке не нужна, а весит много
node_modulesзависимости ставит сама сборка
.tatnetслужебный каталог клиента
.env, .env.*ключи не должны уезжать вместе с папкой

Файл .env.example — шаблон без значений — остаётся. Всё остальное исключается правилами .tatnetignore, а если его нет — .gitignore. Именно «или», а не оба сразу: два действующих файла правил означали бы, что написавший свой всё равно не знает, что уедет.

Пропущенные файлы окружения перечисляются в выводе — чтобы вы узнали об этом из команды, а не из неработающего приложения. Переменные задаются отдельно:

tatnet app env set мой-сайт API_URL=https://api.example.com

Полезные флаги​

ФлагЗачем
--logsпечатать лог сборки
--no-waitне ждать окончания сборки
--app <имя>выложить в конкретное приложение
--name <имя>имя создаваемого приложения
--no-createне создавать приложение, если его нет
--max-size <МиБ>предел размера исходников (по умолчанию 100)

Чего у такой выкладки нет​

У деплоя из папки нет коммита: ни автора, ни разницы с прошлой версией, ни возможности пересобрать её из системы контроля версий. Вместо коммита у сборки есть отпечаток загруженного архива:

tatnet app build list мой-сайт
СТАТУС КОММИТ ОТПЕЧАТОК ДЛИТЕЛЬНОСТЬ
success - 9193d422a38f… 2409
success - d0f44073a6ca… 2307

По отпечатку видно, одинаковы две выкладки или различны, — но историю он не заменяет.

:::tip Когда всё же подключить репозиторий Для начала, отладки и внешнего конвейера деплой из папки — самый короткий путь. Для командного прода подключите репозиторий: тогда у каждой выкладки есть автор, разница и возможность вернуться к любой прошлой версии, а выкат не зависит от того, что лежало на диске у запускавшего. :::

Повторная сборка​

tatnet deploy без изменений в папке загрузит её заново. Если нужно пересобрать тот же источник (например, после смены переменных окружения), достаточно обычного деплоя — он возьмёт архив прошлой сборки:

tatnet app deploy мой-сайт