docs(ci): update troubleshooting guide with bash/sh fix
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
- Document resolution of 'bash: not found' error - Add explanation of new sh-based script execution - Update fallback logic documentation with latest improvements - Provide clear migration path for users experiencing CI issues This completes the Drone CI troubleshooting documentation
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user