'use client' import { motion } from 'framer-motion' import { GitBranch, Code, Hammer, TestTube, Rocket, ArrowRight, Container, GitMerge, Activity, Bell } from 'lucide-react' import { Language } from '@/lib/types' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' interface AnnexDevOpsSlideProps { lang: Language } export default function AnnexDevOpsSlide({ lang }: AnnexDevOpsSlideProps) { const pipelineSteps = [ { name: 'Code', icon: GitBranch, color: 'from-blue-400 to-blue-600' }, { name: 'Gitea', icon: Code, color: 'from-green-400 to-green-600' }, { name: 'Woodpecker CI', icon: Hammer, color: 'from-orange-400 to-orange-600' }, { name: 'Build', icon: Container, color: 'from-purple-400 to-purple-600' }, { name: 'Test', icon: TestTube, color: 'from-pink-400 to-pink-600' }, { name: 'Deploy', icon: Rocket, color: 'from-cyan-400 to-cyan-600' } ] const devOpsTools = [ { title: 'Woodpecker CI', icon: Hammer, accentColor: 'from-orange-400 to-orange-600', items: [ lang === 'de' ? 'Open-Source CI/CD (Apache 2.0)' : 'Open-source CI/CD (Apache 2.0)', lang === 'de' ? 'Docker-native Builds' : 'Docker-native builds', lang === 'de' ? 'Automatische Tests bei jedem Commit' : 'Automatic testing on every commit', lang === 'de' ? 'Build-Zeit: ~3 min' : 'Build time: ~3 min' ] }, { title: 'Docker Compose', icon: Container, accentColor: 'from-blue-400 to-blue-600', items: [ lang === 'de' ? '30+ Services orchestriert' : '30+ services orchestrated', lang === 'de' ? 'Health Checks für alle Container' : 'Health checks for all containers', lang === 'de' ? 'Automatischer Neustart bei Fehler' : 'Automatic restart on failure', lang === 'de' ? 'Ressourcenlimits konfiguriert' : 'Resource limits configured' ] }, { title: 'Gitea', icon: GitMerge, accentColor: 'from-green-400 to-green-600', items: [ lang === 'de' ? 'Self-hosted Git Server' : 'Self-hosted Git server', lang === 'de' ? 'Keine GitHub/GitLab Abhängigkeit' : 'No GitHub/GitLab dependency', lang === 'de' ? 'Issue Tracking integriert' : 'Issue tracking integrated', lang === 'de' ? 'Mirror zu externem Backup' : 'Mirror to external backup' ] }, { title: 'Monitoring', icon: Activity, accentColor: 'from-purple-400 to-purple-600', items: [ lang === 'de' ? 'Night Scheduler für Auto-Shutdown' : 'Night Scheduler for auto-shutdown', lang === 'de' ? 'Container Health Monitoring' : 'Container health monitoring', lang === 'de' ? 'Log-Aggregation' : 'Log aggregation', lang === 'de' ? 'Alerting bei Fehlern' : 'Alerting on failures' ] } ] return (

{lang === 'de' ? 'DevOps & CI/CD' : 'DevOps & CI/CD'}

{lang === 'de' ? 'Automatisierte Entwicklungs- und Deployment-Pipeline' : 'Automated development and deployment pipeline'}

{/* CI/CD Pipeline Visualization */}

{lang === 'de' ? 'CI/CD Pipeline' : 'CI/CD Pipeline'}

{pipelineSteps.map((step, index) => (
{step.name}
{index < pipelineSteps.length - 1 && ( )}
))}
{/* DevOps Tools Grid */}
{devOpsTools.map((tool, index) => (

{tool.title}

    {tool.items.map((item, itemIndex) => (
  • {item}
  • ))}
))}
) }