{pipeline.description || '暂无描述'}
-{pipeline.last_commit_id.slice(0, 8)}
+ )}
+ {(pipeline.last_run_branch || pipeline.last_commit_id) && pipeline.last_image_tag && (
+ {pipeline.last_image_tag}
+
+ )}
+ {pipeline.last_duration > 0 && (
+
+ 流水线 #{pipelineCode}
+暂无执行记录,点击"立即执行"触发构建
| - 0} onChange={toggleAll} className="rounded" /> - | -构建 | -状态 | -触发方式 | -用户 | -耗时 | -时间 | -操作 | -
|---|---|---|---|---|---|---|---|
| e.stopPropagation()}> - toggleSelect(run.id)} className="rounded" /> - | -- #{run.build_number} - | -
- |
-
- |
-
- |
-
- {run.status === 'running' ? (
-
- |
- - {formatTime(run.created_at)} - | - e.stopPropagation()}>
-
-
-
- {run.status === 'running' && (
-
- )}
-
- |
-
| + 0} + onChange={toggleAll} className="rounded" /> + | +构建 | +状态 | +触发方式 | +用户 | +耗时 | +时间 | +操作 | +
|---|---|---|---|---|---|---|---|
| e.stopPropagation()}> + toggleSelect(run.id)} className="rounded" /> + | ++ #{run.build_number} + | +
+ |
+
+ |
+
+ |
+
+ {run.status === 'running' ? (
+
+ |
+ + {formatTime(run.created_at)} + | + e.stopPropagation()}>
+
+
+
+ {run.status === 'running' && (
+
+ )}
- )}
-
- >
- )}
-
-
-
+ |
+
+ {selectedRun.commit_id.slice(0, 8)}
+
+ >
+ )}
+ {selectedRun.image_tag && (
+ <>
+ |
+
+ 📦 {selectedRun.image_tag}
+
+ >
+ )}
+ + 管理 DevOps 工具的安装策略:预装在镜像中、首次使用自动下载(懒加载)、或禁用不安装 +
+ +| 工具 | +分类 | +安装方式 | +状态 | +操作 | +
|---|---|---|---|---|
|
+ {tool.display_name}
+ {tool.name}
+ {tool.installed_version && tool.status === 'installed' && (
+ v{tool.installed_version}
+ )}
+ {tool.error_msg && (
+ {tool.error_msg}
+ )}
+ |
+
+ |
+ + + | +
+ {tool.status === 'installed' ? (
+ |
+
+
+ {tool.install_method === 'lazy' && tool.status !== 'installed' && (
+
+ )}
+
+
+ |
+