// 发布相关共享工具函数与常量 // Logan.Li import { Badge } from '@/components/ui/badge'; import type { JsonData } from '@/types/common'; import { CheckCircle, XCircle, RotateCcw, Clock, Loader2, } from 'lucide-react'; // 发布状态徽章(列表 + 详情共用) // Logan.Li export function getStatusBadge( status: string) { switch (status) { case 'success': return ( 成功 ); case 'failed': return ( 失败 ); case 'deploying': return ( 发布中 ); case 'building': return ( 构建中 ); case 'rolled_back': return ( 已回滚 ); case 'pending': return ( 待发布 ); default: return null; } } // 环境徽章 // Logan.Li export function getEnvBadge( env: string) { const colors: Record = { dev: 'border-slate-500/30 text-slate-400 bg-slate-500/10', test: 'border-blue-500/30 text-blue-400 bg-blue-500/10', staging: 'border-amber-500/30 text-amber-400 bg-amber-500/10', prod: 'border-emerald-500/30 text-emerald-400 bg-emerald-500/10', }; const labels: Record = { dev: '开发环境', test: '测试环境', staging: '预发布', prod: '生产环境', }; return ( {labels[env] || env} ); } // 模拟流水线步骤(详情弹窗使用) // Logan.Li export const PIPELINE_STEPS = [ { name: '代码检出', status: 'success', duration: '15s' }, { name: '依赖安装', status: 'success', duration: '45s' }, { name: '代码检查', status: 'success', duration: '30s' }, { name: '单元测试', status: 'success', duration: '2m 15s' }, { name: '构建镜像', status: 'success', duration: '3m 30s' }, { name: '推送镜像', status: 'success', duration: '1m 20s' }, { name: '部署到Kubernetes', status: 'running', duration: '--' }, { name: '健康检查', status: 'pending', duration: '--' }, ];