- Config loader with env var expansion and validation - SQLite database with tasks and toolchain_versions tables - Gitea REST API client for repository and branch operations - K8s client for Job lifecycle management (with noop fallback for local dev) - REST API: tasks CRUD, retry, plugins, version management - Worker/scheduler with polling, concurrency control, and job tracking - Static frontend: generate, tasks, settings pages - Toolchain images: Go and Node.js Dockerfiles with entrypoint scripts - Helm chart with deployment, service, configmap, ingress, PVC - Multi-stage Dockerfile for service - Unit tests for config, database, gitclient, k8s, api, worker - E2E tests for idempotency, version switch, failure recovery
57 lines
1.6 KiB
HTML
57 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Tasks - Proto-Gen Platform</title>
|
|
<link rel="stylesheet" href="/style.css">
|
|
</head>
|
|
<body>
|
|
<nav>
|
|
<a href="/" class="logo">Proto-Gen</a>
|
|
<div class="nav-links">
|
|
<a href="/">Generate</a>
|
|
<a href="/tasks.html" class="active">Tasks</a>
|
|
<a href="/settings.html">Settings</a>
|
|
</div>
|
|
</nav>
|
|
|
|
<main>
|
|
<h1>Tasks</h1>
|
|
<div class="filters">
|
|
<select id="statusFilter">
|
|
<option value="">All Status</option>
|
|
<option value="pending">Pending</option>
|
|
<option value="running">Running</option>
|
|
<option value="success">Success</option>
|
|
<option value="failed">Failed</option>
|
|
</select>
|
|
<button onclick="refreshTasks()" class="btn-secondary">Refresh</button>
|
|
</div>
|
|
|
|
<table id="tasksTable">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Language</th>
|
|
<th>Proto Repo</th>
|
|
<th>Target Repo</th>
|
|
<th>Status</th>
|
|
<th>Created</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="tasksBody">
|
|
</tbody>
|
|
</table>
|
|
|
|
<div id="noTasks" class="hidden">No tasks found</div>
|
|
</main>
|
|
|
|
<script src="/app.js"></script>
|
|
<script>
|
|
initTasksPage();
|
|
</script>
|
|
</body>
|
|
</html>
|