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. ✅ Добавлены проверки существования файлов
|
2. ✅ Добавлены проверки существования файлов
|
||||||
3. ✅ Созданы упрощенные скрипты (*-simple.sh)
|
3. ✅ Созданы упрощенные скрипты (*-simple.sh)
|
||||||
4. ✅ **НОВОЕ**: Обновлен основной .drone.yml с fallback логикой
|
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)
|
- ✅ Fallback к упрощенным версиям (*-simple.sh)
|
||||||
- ✅ Безопасное игнорирование отсутствующих компонентов
|
- ✅ Безопасное игнорирование отсутствующих компонентов
|
||||||
- ✅ Подробные сообщения об ошибках с инструкциями
|
- ✅ Подробные сообщения об ошибках с инструкциями
|
||||||
|
- ✅ **НОВОЕ**: Исправлена ошибка "bash: not found" - используется sh вместо bash
|
||||||
|
|
||||||
**Принцип работы**:
|
**Принцип работы**:
|
||||||
```bash
|
```bash
|
||||||
# Для каждого этапа CI:
|
# Для каждого этапа CI:
|
||||||
if [ -f scripts/ci/lint.sh ]; then
|
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
|
elif [ -f scripts/ci/lint-simple.sh ]; then
|
||||||
./scripts/ci/lint-simple.sh; # Упрощенная версия
|
sh scripts/ci/lint-simple.sh; # Упрощенная версия
|
||||||
else
|
else
|
||||||
echo "Базовые проверки..."; # Inline fallback
|
echo "Базовые проверки..."; # Inline fallback
|
||||||
fi
|
fi
|
||||||
@@ -73,6 +87,27 @@ fi
|
|||||||
- `publish` → пропуск с уведомлением
|
- `publish` → пропуск с уведомлением
|
||||||
- `deploy-*` → пропуск с уведомлением
|
- `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)
|
### Простая конфигурация (.drone.simple.yml)
|
||||||
|
|||||||
Reference in New Issue
Block a user