Drone CD/CD PipeLine added
Some checks failed
continuous-integration/drone Build is failing

This commit is contained in:
2025-11-02 06:23:39 +09:00
parent 2e535513b5
commit d5f1809f5a
13 changed files with 3537 additions and 67 deletions

83
scripts/ci/lint.sh Executable file
View File

@@ -0,0 +1,83 @@
#!/bin/bash
# scripts/ci/lint.sh - Проверка качества кода
set -e
echo "🔍 Running code quality checks..."
# Проверка Python кода (Backend)
echo "📦 Checking Python code quality..."
if [ -d "backend" ]; then
echo " • Running flake8 for Python linting..."
docker run --rm -v "$(pwd)/backend:/app" -w /app python:3.11-slim bash -c "
pip install flake8 black isort > /dev/null 2>&1
echo ' - flake8 check:'
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics || echo ' ⚠️ flake8 issues found'
echo ' - black format check:'
black --check . || echo ' ⚠️ black formatting issues found'
echo ' - isort import check:'
isort --check-only . || echo ' ⚠️ import sorting issues found'
"
fi
# Проверка TypeScript/JavaScript кода (Frontend)
echo "🌐 Checking TypeScript/JavaScript code quality..."
if [ -d "frontend/linktree-frontend" ]; then
echo " • Running ESLint for TypeScript/JavaScript..."
docker run --rm -v "$(pwd)/frontend/linktree-frontend:/app" -w /app node:20-alpine sh -c "
npm install --silent > /dev/null 2>&1
echo ' - ESLint check:'
npm run lint || echo ' ⚠️ ESLint issues found'
echo ' - TypeScript check:'
npm run type-check || echo ' ⚠️ TypeScript issues found'
"
fi
# Проверка Docker файлов
echo "🐳 Checking Docker files..."
if command -v hadolint > /dev/null 2>&1; then
echo " • Running hadolint for Dockerfile..."
find . -name "Dockerfile*" -exec hadolint {} \; || echo " ⚠️ Dockerfile issues found"
else
echo " • Hadolint not available, skipping Dockerfile check"
fi
# Проверка YAML файлов
echo "📄 Checking YAML files..."
if command -v yamllint > /dev/null 2>&1; then
echo " • Running yamllint..."
find . -name "*.yml" -o -name "*.yaml" | xargs yamllint || echo " ⚠️ YAML issues found"
else
echo " • yamllint not available, skipping YAML check"
fi
# Проверка Markdown файлов
echo "📝 Checking Markdown files..."
if [ -f "README.md" ]; then
echo " • Checking README.md structure..."
if grep -q "# " README.md; then
echo " ✅ README.md has proper headers"
else
echo " ⚠️ README.md missing proper headers"
fi
fi
# Проверка безопасности зависимостей
echo "🔐 Checking dependencies security..."
if [ -f "frontend/linktree-frontend/package.json" ]; then
echo " • Running npm audit..."
docker run --rm -v "$(pwd)/frontend/linktree-frontend:/app" -w /app node:20-alpine sh -c "
npm install --silent > /dev/null 2>&1
npm audit --audit-level moderate || echo ' ⚠️ npm security issues found'
"
fi
if [ -f "backend/requirements.txt" ]; then
echo " • Running safety check for Python..."
docker run --rm -v "$(pwd)/backend:/app" -w /app python:3.11-slim bash -c "
pip install safety > /dev/null 2>&1
safety check -r requirements.txt || echo ' ⚠️ Python security issues found'
" || echo " ⚠️ Safety check failed"
fi
echo "✅ Code quality checks completed!"