// 发布相关共享工具函数与常量 // 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: '--' },
];