diff --git a/docs/DRONE_TROUBLESHOOTING.md b/docs/DRONE_TROUBLESHOOTING.md index 8915bf1..2253935 100644 --- a/docs/DRONE_TROUBLESHOOTING.md +++ b/docs/DRONE_TROUBLESHOOTING.md @@ -43,22 +43,36 @@ 2. ✅ Добавлены проверки существования файлов 3. ✅ Созданы упрощенные скрипты (*-simple.sh) 4. ✅ **НОВОЕ**: Обновлен основной .drone.yml с fallback логикой +5. ✅ **НОВОЕ**: Исправлена ошибка "bash: not found" - используется sh -### 4. Новая Fallback логика в .drone.yml +### 4. Ошибка "bash: not found" + +**Проблема**: +``` +/bin/sh: bash: not found +``` + +**Причина**: Docker образ `docker:20.10-dind` не содержит bash по умолчанию. + +**Решение**: +- ✅ Изменено выполнение скриптов с `bash` на `sh` +- ✅ Добавлена установка bash в этап prepare +- ✅ Все команды теперь совместимы с Alpine/sh **Улучшения**: - ✅ Автоматическая проверка существования скриптов - ✅ Fallback к упрощенным версиям (*-simple.sh) - ✅ Безопасное игнорирование отсутствующих компонентов - ✅ Подробные сообщения об ошибках с инструкциями +- ✅ **НОВОЕ**: Исправлена ошибка "bash: not found" - используется sh вместо bash **Принцип работы**: ```bash # Для каждого этапа CI: if [ -f scripts/ci/lint.sh ]; then - ./scripts/ci/lint.sh; # Полная версия + sh scripts/ci/lint.sh; # Используем sh вместо bash elif [ -f scripts/ci/lint-simple.sh ]; then - ./scripts/ci/lint-simple.sh; # Упрощенная версия + sh scripts/ci/lint-simple.sh; # Упрощенная версия else echo "Базовые проверки..."; # Inline fallback fi @@ -73,6 +87,27 @@ fi - `publish` → пропуск с уведомлением - `deploy-*` → пропуск с уведомлением +### 5. Новая Fallback логика в .drone.yml + +**Улучшения**: +- ✅ Автоматическая проверка существования скриптов +- ✅ Fallback к упрощенным версиям (*-simple.sh) +- ✅ Безопасное игнорирование отсутствующих компонентов +- ✅ Подробные сообщения об ошибках с инструкциями +- ✅ Совместимость с sh/bash для максимальной портативности + +**Принцип работы**: +```bash +# Для каждого этапа CI: +if [ -f scripts/ci/lint.sh ]; then + sh scripts/ci/lint.sh; # Используем sh для совместимости +elif [ -f scripts/ci/lint-simple.sh ]; then + sh scripts/ci/lint-simple.sh; # Упрощенная версия +else + echo "Базовые проверки..."; # Inline fallback +fi +``` + ## 📋 Рабочие конфигурации ### Простая конфигурация (.drone.simple.yml)