Деплой из папки
Обычный путь приложения — подключённый репозиторий: каждый 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 мой-сайт