Данный документ содержит информацию о том, как правильно обновлять конфигурацию и компоненты DevOps инструментов.
- Добавьте новый параметр в файлы
config.jsonиconfig.example.json:
{
"new_section": {
"new_parameter": "значение_по_умолчанию"
}
}- Обновите документацию в
CONFIG_REFERENCE.md, добавив описание нового параметра:
### Раздел "new_section"
```json
"new_section": {
"new_parameter": "значение_по_умолчанию"
}| Поле | Описание | Обязательное | Пример |
|---|---|---|---|
new_parameter |
Описание нового параметра | Да/Нет | "пример_значения" |
3. Добавьте метод для получения параметра в `config_loader.py`:
```python
@classmethod
def get_new_parameter(cls) -> str:
"""Возвращает новый параметр."""
config = cls.load_config()
return config.get("new_section", {}).get("new_parameter", "значение_по_умолчанию")
- Если параметр нужен в bash-скриптах, обновите
export_config.sh:
export NEW_PARAMETER=$(python -c "from config_loader import ConfigLoader; print(ConfigLoader.get_new_parameter())")- Обновите значение в
config.example.json - Обновите документацию в
CONFIG_REFERENCE.md - Если необходимо, обновите соответствующие методы в
config_loader.py
- Сделайте резервную копию текущего скрипта:
cp ci/script_name.py ci/script_name.py.bak- Внесите изменения в скрипт
- Проверьте изменения с помощью тестов:
python ci/script_name.py --test- Обновите документацию при необходимости
- Сделайте резервную копию текущего скрипта:
cp gitlab/script_name.sh gitlab/script_name.sh.bak- Внесите изменения в скрипт
- Проверьте синтаксис:
bash -n gitlab/script_name.sh- Запустите скрипт с флагом отладки:
bash -x gitlab/script_name.sh --debug- Создайте новый скрипт в соответствующей директории:
touch ci/new_script.py
chmod +x ci/new_script.py- Используйте следующий шаблон:
#!/usr/bin/env python3
"""
new_script.py - Описание нового инструмента
Использование: python new_script.py [аргументы]
"""
import os
import sys
import json
import argparse
from typing import Dict, List, Any
# Импортируем загрузчик конфигурации
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config_loader import ConfigLoader
def main():
"""Основная функция скрипта."""
parser = argparse.ArgumentParser(description="Описание инструмента")
parser.add_argument("--arg1", help="Описание аргумента 1")
parser.add_argument("--arg2", help="Описание аргумента 2")
args = parser.parse_args()
# Получаем конфигурацию
config = ConfigLoader.load_config()
# Логика инструмента
print("Скрипт успешно выполнен")
if __name__ == "__main__":
main()- Обновите соответствующую документацию
- Создайте новый скрипт в соответствующей директории:
touch gitlab/new_script.sh
chmod +x gitlab/new_script.sh- Используйте следующий шаблон:
#!/bin/bash
# new_script.sh - Описание нового инструмента
# Использование: ./new_script.sh [аргументы]
# Получаем директорию, в которой находится скрипт
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
TOOLS_DIR="$( cd "$SCRIPT_DIR/.." >/dev/null 2>&1 && pwd )"
# Загружаем конфигурацию из export_config.sh
source "$TOOLS_DIR/export_config.sh" || {
echo "Ошибка: не удалось загрузить конфигурацию"
exit 1
}
# Включение режима отладки (установите в true для отладки)
DEBUG=false
# Функция для вывода отладочной информации
debug() {
if [ "$DEBUG" = "true" ]; then
echo "DEBUG: $1"
fi
}
# Основная логика
main() {
echo "Скрипт выполняется..."
}
main "$@"- Обновите соответствующую документацию
При удалении файлов следуйте этим правилам:
- Убедитесь, что файл не используется другими скриптами
- Создайте резервную копию перед удалением
- Обновите документацию, указав, что файл удален
# Создание резервной копии
mkdir -p backups
cp path/to/file backups/
# Удаление файла
rm path/to/file- Регулярно обновляйте зависимости:
pip install -r requirements.txt --upgrade- Проверяйте наличие ошибок и предупреждений в логах:
python ci/logs_utils.py --analyze logs/- Периодически запускайте диагностику системы:
python ci/run_diagnostics.py