#!/bin/bash # Тестирование исправлений buildx проблем # Автор: Сергей Антропов # Сайт: https://devops.org.ru set -euo pipefail echo "🧪 ТЕСТИРОВАНИЕ ИСПРАВЛЕНИЙ BUILDX" echo "==================================" echo "" # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' RESET='\033[0m' # Функция для вывода результатов test_result() { local test_name="$1" local result="$2" local message="$3" if [ "$result" = "PASS" ]; then echo -e "${GREEN}✅ $test_name: $message${RESET}" else echo -e "${RED}❌ $test_name: $message${RESET}" fi } echo "🔍 1. Проверка версий Docker и Buildx..." if docker version >/dev/null 2>&1; then test_result "Docker" "PASS" "Docker доступен" else test_result "Docker" "FAIL" "Docker недоступен" exit 1 fi if docker buildx version >/dev/null 2>&1; then test_result "Buildx" "PASS" "Buildx доступен" else test_result "Buildx" "FAIL" "Buildx недоступен" exit 1 fi echo "" echo "🔍 2. Тестирование docker-check-builder..." if make docker-check-builder >/dev/null 2>&1; then test_result "check-builder" "PASS" "Builder существует" else test_result "check-builder" "PASS" "Builder не найден (ожидаемо)" fi echo "" echo "🔍 3. Тестирование docker-diagnose-buildx..." if make docker-diagnose-buildx >/dev/null 2>&1; then test_result "diagnose" "PASS" "Диагностика работает" else test_result "diagnose" "FAIL" "Диагностика не работает" fi echo "" echo "🔍 4. Тестирование docker-create-builder..." echo "📦 Создание тестового builder..." if make docker-create-builder >/dev/null 2>&1; then test_result "create-builder" "PASS" "Builder создан успешно" else test_result "create-builder" "FAIL" "Не удалось создать builder" fi echo "" echo "🔍 5. Проверка созданного builder..." if make docker-check-builder >/dev/null 2>&1; then test_result "verify-builder" "PASS" "Builder готов к работе" else test_result "verify-builder" "FAIL" "Builder не готов" fi echo "" echo "🔍 6. Тестирование docker-reset-builder..." if make docker-reset-builder >/dev/null 2>&1; then test_result "reset-builder" "PASS" "Builder сброшен успешно" else test_result "reset-builder" "FAIL" "Не удалось сбросить builder" fi echo "" echo "🔍 7. Проверка отсутствия buildx ls в коде..." if grep -r "buildx ls" Makefile >/dev/null 2>&1; then test_result "no-buildx-ls" "FAIL" "Найдены использования buildx ls" else test_result "no-buildx-ls" "PASS" "buildx ls не используется" fi echo "" echo "🔍 8. Проверка использования inspect..." if grep -r "buildx inspect" Makefile >/dev/null 2>&1; then test_result "uses-inspect" "PASS" "Используется buildx inspect" else test_result "uses-inspect" "FAIL" "buildx inspect не используется" fi echo "" echo "==================================" echo "🎯 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ" echo "==================================" echo "" echo "💡 Рекомендации:" echo " - Используйте 'make docker diagnose' при проблемах" echo " - Используйте 'make docker reset-builder' при зависаниях" echo " - Избегайте 'docker buildx ls' в CI/CD" echo " - Используйте 'make docker setup-builder' для настройки" echo "" echo "✅ Исправления buildx проблем готовы к использованию!"