Files
erjemin 5f53be810f
HYPN0 Build and Push Docker Image / build-and-push (push) Successful in 1m23s
fix: CI/CD сборка tailwind для прода (устранена ошибка версий)
2026-09-19 18:57:13 +03:00

78 lines
2.3 KiB
Bash

#!/usr/bin/env bash
# Сборка Tailwind CSS v4 для фронтенда HYPN0
# Запуск из корня проекта: bash ./scripts/build-tailwind.sh
set -euo pipefail
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TAILWIND_DIR="$PROJECT_ROOT/frontend-assembly/tailwind"
OUTPUT_DIR="$PROJECT_ROOT/public/static/css"
log() {
printf '[tailwind] %s\n' "$*"
}
fail() {
printf '[tailwind] %s\n' "$*" >&2
exit 1
}
# cleanup() — удаляет временные файлы при любом завершении скрипта.
cleanup() {
rm -rf "$TAILWIND_DIR/node_modules" \
"$TAILWIND_DIR/postcss.config.js" \
"$TAILWIND_DIR/tailwind.config.js" \
"$TAILWIND_DIR/input.css"
}
trap cleanup EXIT INT TERM
if ! command -v npm >/dev/null 2>&1; then
fail 'Не найден `npm`. Установи Node.js и повтори сборку.'
fi
if [[ ! -f "$TAILWIND_DIR/package.json" ]]; then
fail "Не найден package.json: $TAILWIND_DIR/package.json"
fi
mkdir -p "$OUTPUT_DIR"
# --- input.css ---
log "Создаю input.css для Tailwind v4"
cat > "$TAILWIND_DIR/input.css" <<'EOF'
/*
input.css — точка входа для сборки prod-версии Tailwind CSS v4.
Собирается через @tailwindcss/cli в
файл public/static/css/tailwind.min.css, который подключается в _base.html
для production (когда settings.DEBUG == False).
Здесь же подключаются кастомные стили из hypn0/templates/css/tailwind-custom.css.
*/
@import "tailwindcss";
@source "../../hypn0/templates";
@source "../../hypn0/hypn0_site";
@import "../../hypn0/templates/css/tailwind-custom.css";
EOF
log "СОБИРАЮ Tailwind CSS v4"
cd "$TAILWIND_DIR"
# Если package-lock.json отсутствует или устарел, используем npm install / npm ci
if [[ -f "$TAILWIND_DIR/package-lock.json" ]]; then
log 'Устанавливаю зависимости через npm install'
npm install --no-audit --no-fund
else
log 'Устанавливаю зависимости через npm install'
npm install --no-audit --no-fund
fi
log 'Собираю CSS'
npm run build
log 'ГОТОВО! Результат: '"$OUTPUT_DIR/tailwind.min.css"