Skip to content

Latest commit

 

History

History
229 lines (161 loc) · 6.7 KB

File metadata and controls

229 lines (161 loc) · 6.7 KB

Инструкции по обновлению DevOps инструментов

Данный документ содержит информацию о том, как правильно обновлять конфигурацию и компоненты DevOps инструментов.

Обновление конфигурации

Добавление нового параметра в конфигурацию

  1. Добавьте новый параметр в файлы config.json и config.example.json:
{
  "new_section": {
    "new_parameter": "значение_по_умолчанию"
  }
}
  1. Обновите документацию в 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", "значение_по_умолчанию")
  1. Если параметр нужен в bash-скриптах, обновите export_config.sh:
export NEW_PARAMETER=$(python -c "from config_loader import ConfigLoader; print(ConfigLoader.get_new_parameter())")

Изменение существующего параметра

  1. Обновите значение в config.example.json
  2. Обновите документацию в CONFIG_REFERENCE.md
  3. Если необходимо, обновите соответствующие методы в config_loader.py

Обновление скриптов

Обновление Python-скриптов

  1. Сделайте резервную копию текущего скрипта:
cp ci/script_name.py ci/script_name.py.bak
  1. Внесите изменения в скрипт
  2. Проверьте изменения с помощью тестов:
python ci/script_name.py --test
  1. Обновите документацию при необходимости

Обновление Bash-скриптов

  1. Сделайте резервную копию текущего скрипта:
cp gitlab/script_name.sh gitlab/script_name.sh.bak
  1. Внесите изменения в скрипт
  2. Проверьте синтаксис:
bash -n gitlab/script_name.sh
  1. Запустите скрипт с флагом отладки:
bash -x gitlab/script_name.sh --debug

Добавление новых инструментов

Добавление нового Python-скрипта

  1. Создайте новый скрипт в соответствующей директории:
touch ci/new_script.py
chmod +x ci/new_script.py
  1. Используйте следующий шаблон:
#!/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()
  1. Обновите соответствующую документацию

Добавление нового Bash-скрипта

  1. Создайте новый скрипт в соответствующей директории:
touch gitlab/new_script.sh
chmod +x gitlab/new_script.sh
  1. Используйте следующий шаблон:
#!/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 "$@"
  1. Обновите соответствующую документацию

Удаление ненужных файлов

При удалении файлов следуйте этим правилам:

  1. Убедитесь, что файл не используется другими скриптами
  2. Создайте резервную копию перед удалением
  3. Обновите документацию, указав, что файл удален
# Создание резервной копии
mkdir -p backups
cp path/to/file backups/

# Удаление файла
rm path/to/file

Поддержка системы в актуальном состоянии

  1. Регулярно обновляйте зависимости:
pip install -r requirements.txt --upgrade
  1. Проверяйте наличие ошибок и предупреждений в логах:
python ci/logs_utils.py --analyze logs/
  1. Периодически запускайте диагностику системы:
python ci/run_diagnostics.py