add post-deploy logging
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-09-27 22:15:05 +03:00
parent 1c0f4cceb1
commit 4b42eac739
+38 -3
View File
@@ -11,18 +11,34 @@ GREEN='\033[0;32m'
YELLOW='\033[1;33m' YELLOW='\033[1;33m'
NC='\033[0m' # No Color NC='\033[0m' # No Color
# Функция для записи в лог-файл
write_to_log() {
local message="$1"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$timestamp] [PostDeploy] $message" >> "$LOG_FILE"
}
# Функция для логирования # Функция для логирования
log() { log() {
echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')] $1${NC}" local message="$1"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo -e "${GREEN}[$timestamp] $1${NC}"
write_to_log "$message"
} }
error() { error() {
echo -e "${RED}[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: $1${NC}" local message="$1"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo -e "${RED}[$timestamp] ERROR: $1${NC}"
write_to_log "ERROR: $message"
exit 1 exit 1
} }
warning() { warning() {
echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')] WARNING: $1${NC}" local message="$1"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo -e "${YELLOW}[$timestamp] WARNING: $1${NC}"
write_to_log "WARNING: $message"
} }
# Определяем корневую директорию проекта # Определяем корневую директорию проекта
@@ -35,8 +51,27 @@ SERVICES_DIR="$PROJECT_ROOT/services"
SERVICES_BACKUP_DIR="$SERVICES_DIR/backups" SERVICES_BACKUP_DIR="$SERVICES_DIR/backups"
SYSTEMD_DIR="/etc/systemd/system" SYSTEMD_DIR="/etc/systemd/system"
# Загружаем переменные окружения из .env файла
if [ -f "$PROJECT_ROOT/.env" ]; then
source "$PROJECT_ROOT/.env"
fi
# Определяем лог-файл из переменной окружения или используем значение по умолчанию
LOG_FILE="${LOG_FILE:-$PROJECT_ROOT/post-deploy.log}"
log "Начинаем post-deploy процесс для проекта: $PROJECT_ROOT" log "Начинаем post-deploy процесс для проекта: $PROJECT_ROOT"
# 0. Установка прав на исполнение для всех .sh файлов в основном каталоге проекта
log "Устанавливаем права на исполнение для всех .sh файлов в проекте..."
# Находим все .sh файлы в основном каталоге проекта (не в подкаталогах)
for sh_file in "$PROJECT_ROOT"/*.sh; do
if [ -f "$sh_file" ]; then
chmod +x "$sh_file"
log "Установлены права на исполнение для: $(basename "$sh_file")"
fi
done
# 1. Проверка и создание виртуального окружения Python # 1. Проверка и создание виртуального окружения Python
log "Проверяем наличие виртуального окружения Python..." log "Проверяем наличие виртуального окружения Python..."