Деплой приложения в CI через TatNet CLI
TatNet CLI может запускать сборку существующего Git-приложения из CI и ждать, пока именно нужный коммит перейдёт в live. Пример ниже — для GitHub Actions. English version.
Подготовка
- Создайте в TatNet приложение, подключённое к тому же GitHub-репозиторию и ветке
main. При необходимости отключите автоматический деплой по push, чтобы CI был единственным триггером. - Создайте API-ключ с доступом к приложению и запуску сборок. Сохраните его как секрет GitHub Actions
TATNET_API_KEY. - В Variables задайте
TATNET_APP_ID— UUID приложения. Использование UUID исключает неоднозначность одинаковых имён. ВTATNET_CLI_VERSIONзадайте протестированную версию npm-пакетаtatnet.
Команды локальной проверки:
tatnet auth status
tatnet app list --all-projects -o json
Рабочий процесс GitHub Actions
Сохраните в репозитории .github/workflows/tatnet-deploy.yml:
name: Deploy to TatNet
on:
push:
branches: [main]
permissions:
contents: read
concurrency:
group: tatnet-production
cancel-in-progress: false
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- uses: actions/setup-node@v7
with:
node-version: '24'
package-manager-cache: false
- name: Install TatNet CLI
env:
CLI_VERSION: ${{ vars.TATNET_CLI_VERSION }}
run: |
test -n "$CLI_VERSION"
npm install -g "tatnet@$CLI_VERSION"
- name: Deploy the pushed commit and wait for live
env:
TATNET_API_KEY: ${{ secrets.TATNET_API_KEY }}
APP_ID: ${{ vars.TATNET_APP_ID }}
run: |
test -n "$TATNET_API_KEY"
test -n "$APP_ID"
tatnet app deploy "$APP_ID" --commit "$GITHUB_SHA" --wait --logs
Checkout не нужен: сборку из Git выполняет TatNet. Ключ находится в секрете CI; интерактивный tatnet auth login не используется. Перед внедрением выберите актуальную поддерживаемую версию Node и проверьте workflow в своём репозитории.
Как понять, что деплой завершён
Успешный шаг CLI означает, что выбранная сборка перешла в status=success и deploy_state=live. Успешная сборка другого коммита не удовлетворяет ожидание. Ошибка сборки, запуска или таймаут дают ненулевой код выхода. --logs печатает лог в stderr.
Если сборка уже запущена другим процессом, дождитесь её без повторного запуска:
tatnet app wait <app-id> --commit <полный-SHA> --deadline 30m
Сборки и работа ресурсов следуют тарифам TatNet. Эта инструкция запускает реальный деплой в выбранное приложение, поэтому сначала проверьте её на тестовом приложении. Для выкладки локальной папки смотрите tatnet deploy.