Shipyard

официальный

CLI Shipyard предоставляет MCP-сервер для управления средами Shipyard напрямую: извлечение логов, сравнение веток, запуск тестов, остановка и запуск сред.

Что можно делать с Shipyard MCP?

  • Список окружений с фильтрами — Запросите показ окружений, отфильтрованных по репозиторию, ветке или pull request, с помощью shipyard get environments.
  • Просмотр деталей окружения — Получите полную информацию для конкретного UUID окружения, включая его bypass-токен для скриптов.
  • Управление жизненным циклом окружения — Остановите, перезапустите, отмените сборки, пересоберите или восстановите удаленные окружения по UUID.
  • Доступ к сервисам и журналам — Получите открытые порты, просматривайте журналы в реальном времени, выполняйте команды или настраивайте проброс портов в сервис работающего окружения.
  • Работа с томами и снимками — Список, сброс, создание снимков, загрузка или выгрузка файлов в тома внутри окружения.
  • Развертывание изолированных окружений — Клонируйте сборку приложения с пользовательскими переопределениями веток и политиками пересборки.

Документация

Интерфейс командной строки Shipyard

Инструмент для управления эфемерными средами на платформе Shipyard.

Используете ИИ-ассистента? CLI включает MCP-сервер: см. Использование Shipyard с ИИ-ассистентом.

Установка

  • Linux и macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Перейдите на страницу релизов и загрузите исполняемый файл для Windows.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Вход в систему

Выполните shipyard login для инициализации CLI. Вам будет предложено войти в Shipyard в браузере. Затем CLI сохранит ваш API-токен в локальной конфигурации. Вы готовы начать выполнять команды.

Или установите токен вручную

Установите ваш API-токен Shipyard как значение переменной окружения SHIPYARD_API_TOKEN.

Вы можете получить его, перейдя на страницу вашего профиля.

Вы можете связаться с нами по адресу support@shipyard.build, если хотите включить API-доступ для вашей организации. Если у вас есть другие вопросы, присоединяйтесь к нашему сообществу Slack.

shipyard set token

В качестве альтернативы вы можете использовать файл конфигурации, хранящийся по умолчанию в $HOME/.shipyard/config.yaml. При первом запуске CLI создаст пустой файл конфигурации по умолчанию, который вы затем сможете отредактировать.

Вы также можете указать нестандартный путь к конфигурации с помощью флага --config {path}, добавляемого к любой команде.

Добавьте любые значения конфигурации в ваш файл и убедитесь, что файл соответствует синтаксису YAML. Например:

api_token: <your-token>
org: <your-non-default-org>

Значения ваших переменных окружения переопределяют соответствующие значения в конфигурации.

Базовое использование

Получить все организации, в которых вы состоите

shipyard get orgs

Установить глобальную организацию по умолчанию

shipyard set org {org-name}

Получить текущую настроенную организацию

shipyard get org

Список всех сред

shipyard get environments

Доступные флаги:

ИмяОписаниеТипЗначение по умолчанию
branchФильтр по имени веткиstring
deletedВозвращать удаленные средыbooleanfalse
jsonВывести полный JSON-выводbooleanfalse
nameФильтр по имени приложенияstring
org-nameФильтр по имени организации, если вы состоите в нескольких организацияхstringваша организация по умолчанию
pageЗапрашиваемый номер страницыint1
page-sizeЗапрашиваемый размер страницыint20
pull-request-numberФильтр по номеру pull requeststring
repo-nameФильтр по имени репозиторияstring

Примеры:

  • Список всех сред, запускающих репозиторий flask-backend на ветке main:
shipyard get environments --repo-name flask-backend --branch main
  • Список всех удаленных сред:
shipyard get environments --deleted

Получить сведения о конкретной среде по её UUID

shipyard get environment {environment_uuid}

Доступные флаги:

ИмяОписаниеТипЗначение по умолчанию
jsonВывести полный JSON-выводbooleanfalse
orgОрганизация среды, если вы состоите в нескольких организацияхstringваша организация по умолчанию
bypass-tokenВывести только bypass-токен среды, для скриптовbooleanfalse

--bypass-token позволяет скрипту использовать токен без ввода или вывода его на экран:

SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
  export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/

Остановить запущенную среду

shipyard stop environment {environment_uuid}

Перезапустить остановленную среду

shipyard restart environment {environment_uuid}

Отменить текущую сборку для среды

shipyard cancel environment {environment_uuid}

Пересобрать среду

shipyard rebuild environment {environment_uuid}

Восстановить удаленную среду

shipyard revive environment {environment_uuid}

Развернуть отдельную среду

Создайте новую, независимую («отдельную») среду, клонируя существующую сборку приложения. Требуется, чтобы отдельные среды были включены для вашей организации.

shipyard detached deploy {application_build_uuid} --name my-detached-env

Переопределите ветки для каждого репозитория и управляйте тем, будет ли отдельная среда пересобираться при новых коммитах:

# Override the branch for a repo, and never rebuild on new commits
shipyard detached deploy {application_build_uuid} --name my-detached-env --branch web=feature-x --build-on-commit never

# Per-repo build-on-commit settings (always | inherit | never)
shipyard detached deploy {application_build_uuid} --build-on-commit-for web=always --build-on-commit-for api=never

Получить все сервисы и открытые порты для среды

shipyard get services --env {environment_uuid}

Выполнить команду в сервисе запущенной среды

Выполните любую команду с любыми аргументами и флагами в заданном сервисе для запущенной среды. Передавайте любые аргументы команды после двойной косой черты.

shipyard exec --env {environment_uuid} --service {service_name} -- bash

Проброс порта сервиса запущенной среды

shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}

Получить логи сервиса запущенной среды

shipyard logs --env {environment_uuid} --service {service_name}

Посетить среду

shipyard visit {environment_uuid}

Доступные флаги:

ИмяОписаниеТипЗначение по умолчанию
followСледовать за выводом логовbooleanfalse
tailКоличество последних строк логов для отображенияint3000

Работа с томами

Список всех томов в среде

shipyard get volumes --env {environment_uuid}

Список всех снимков томов в среде

shipyard get snapshots --env {environment_uuid}

Сбросить том в среде

shipyard reset volume --env {environment_uuid}

Создать снимок в среде

shipyard create snapshot --env {environment_uuid}

Загрузить снимок тома в среде

shipyard load snapshot --env {environment_uuid} --sequence-number {n}

Загрузить файл в том в среде

shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}

Вызов REST API напрямую

shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json

Пути должны начинаться с /api/v1 или /api/v2; ваш токен и организация добавляются автоматически. bypass_token и учетные данные kubeconfig скрываются, если вы не передадите --include-secrets.

Подключение к telepresence

shipyard telepresence connect --env {environment_uuid}

Оттуда вы сможете напрямую общаться со всеми подами в пространстве имен. Возможно, вам придется использовать имя хоста пространства имен для связи с сервисами, которое можно получить через telepresence status в поле Namespace. Например, для связи с redis используйте redis.shipyard-app-build-{uuid}

Создание исполняемого файла из кода:

Вы можете создать исполняемый файл, выполнив следующую команду:

make

Чтобы запустить этот новый исполняемый файл:

./shipyard

Включение автодополнения

Bash

Этот скрипт зависит от пакета bash-completion. Если он еще не установлен, вы можете установить его через менеджер пакетов вашей ОС. Чтобы загрузить автодополнение в текущей сессии оболочки:

source <(shipyard completion bash)

Чтобы загружать автодополнение для каждой новой сессии, выполните следующее один раз.

На Linux:

shipyard completion bash > /etc/bash_completion.d/shipyard

На macOS:

shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard

Zsh

Если автодополнение оболочки еще не включено в вашей среде, вам нужно будет включить его. Вы можете выполнить следующее один раз:

echo "autoload -U compinit; compinit" >> ~/.zshrc

Чтобы загрузить автодополнение в текущей сессии оболочки:

source <(shipyard completion zsh); compdef _shipyard shipyard

Чтобы загружать автодополнение для каждой новой сессии, выполните следующее один раз.

На Linux:

shipyard completion zsh > "${fpath[1]}/_shipyard"

На macOS:

shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard

Вам нужно будет запустить новую оболочку, чтобы эта настройка вступила в силу.

Fish

Чтобы загрузить автодополнение в текущей сессии оболочки:

$ shipyard completion fish | source

Чтобы загружать автодополнение для каждой сессии, выполните один раз:

shipyard completion fish > ~/.config/fish/completions/shipyard.fish

PowerShell

Чтобы загрузить автодополнение в текущей сессии оболочки:

shipyard completion powershell | Out-String | Invoke-Expression

Чтобы загружать автодополнение для каждой новой сессии, выполните:

shipyard completion powershell > shipyard.ps1

и подключите этот файл из вашего профиля PowerShell.

Использование Shipyard с ИИ-ассистентом (MCP)

shipyard mcp serve запускает сервер Model Context Protocol, поэтому ассистент, такой как Claude Code, Claude Desktop, Cursor или Codex, может перечислять, проверять, пересобирать и настраивать ваши среды, читать логи сервисов, управлять томами и проверять отправленное изменение в его среде.

После входа в CLI добавьте его в Claude Code:

claude mcp add shipyard -- shipyard mcp serve

Затем задавайте вопросы, например:

  • «Какие среды запущены для репозитория web?»
  • «Покажи логи сервиса api в среде моей ветки».
  • «Установи FEATURE_FLAGS=beta в этой среде и перезапусти сервис worker».
  • «Я только что отправил изменения. Проверь изменение в его среде». (или /mcp__shipyard__verify)

См. Руководство по MCP для настройки в других клиентах, конфигурации, полного списка инструментов, подсказки verify и устранения неполадок.