deployment-check.sh

Обзор

deployment-check.sh — это скрипт на Bash, предназначенный для проверки готовности проекта к развертыванию. Он автоматически проверяет наличие необходимых зависимостей, доступность портов, структуру проекта, успешность сборки смарт-контрактов и оффчейн-компонентов, а также корректность работы тестов и конфигурации Docker. В случае выявления проблем скрипт выводит подробную информацию и рекомендации по их устранению.

Скрипт значительно облегчает и автоматизирует подготовительный этап перед деплоем, минимизируя человеческие ошибки и обеспечивая стабильность разворачиваемой среды.


Описание функций

Цветовые константы и вспомогательные функции вывода

print_status(message)

Выводит информационное сообщение в зелёном цвете с префиксом [INFO].

print_warning(message)

Выводит предупреждение в жёлтом цвете с префиксом [WARNING].

print_error(message)

Выводит сообщение об ошибке в красном цвете с префиксом [ERROR].

print_header(title)

Выводит заголовок секции синим цветом с обрамлением из символов =.


check_dependencies()

Проверяет наличие и версии всех необходимых внешних зависимостей:

Логика:

Пример вызова:

check_dependencies

check_ports()

Проверяет доступность ключевых портов, используемых проектом:

Логика:


check_project_structure()

Проверяет наличие обязательных файлов и каталогов в структуре проекта:

Если какой-либо файл отсутствует — функция возвращает 1 и выводит ошибку.


build_contracts()

Собирает смарт-контракты проекта:


build_offchain()

Собирает оффчейн-компоненты:


run_tests()

Запускает тесты для смарт-контрактов через Foundry:


test_docker_deployment()

Проверяет корректность конфигурации Docker и Docker Compose:


cleanup()

Удаляет временную директорию temp-network, если она существует.


main()

Основная функция запускающая все проверки и сборки последовательно:

  1. Проверка зависимостей.

  2. Проверка портов.

  3. Проверка структуры проекта.

  4. Сборка смарт-контрактов.

  5. Сборка оффчейн-компонентов.

  6. Запуск тестов (не критично для остановки).

  7. Проверка Docker-деплоя.

  8. Очистка временных файлов.

  9. Вывод итогового отчета о готовности проекта.

Если все проверки прошли успешно — выводится инструкция по развертыванию.


Важные детали реализации


Взаимодействие с другими частями системы


Пример запуска

./deployment-check.sh

Mermaid-диаграмма: структура и взаимосвязь функций

flowchart TD
    A[main] --> B[check_dependencies]
    A --> C[check_ports]
    A --> D[check_project_structure]
    A --> E[build_contracts]
    A --> F[build_offchain]
    A --> G[run_tests]
    A --> H[test_docker_deployment]
    A --> I[cleanup]

    subgraph Output Functions
        J[print_status]
        K[print_warning]
        L[print_error]
        M[print_header]
    end

    B --> J
    B --> L
    C --> J
    C --> K
    D --> J
    D --> L
    E --> J
    E --> L
    F --> J
    F --> L
    G --> J
    G --> K
    H --> J
    H --> L
    I --> J

Итог

deployment-check.sh — это удобный и многофункциональный инструмент для проверки инфраструктуры проекта перед развертыванием. Он повышает качество и предсказуемость процесса деплоя за счёт комплексной автоматической валидации. Рекомендуется запускать этот скрипт как часть CI/CD пайплайна и локальных подготовительных процедур.