前端: - 「我的构建」列表「查看详情/查看进度」按钮补充与其他按钮同风格的眼睛小图标 - 顶部导航增加 768px 以下移动端适配: 顶栏纵向排列, 导航单行横向滑动, 修复手机端错位 Gitea Actions 工作流 (仅 .gitea, 不动 .github): - 5 个生成器工作流全部补充 /updategh 终态状态回调 (成功/取消/失败均回调), 修复无回调导致构建 6 小时后被误判为超时的 P0 缺陷 - Windows 两个工作流 job 级默认 shell 设为 pwsh, 兼容 act 在 Windows 默认 bash - 修复 VCPKG_BINARY_SOURCES 中 \v 的 YAML 非法转义 (双引号改单引号) - Flutter 补丁路径改为 .rdgen-src/.github/patches/, run-on-arch 容器内用 /workspace 前缀 - run-on-arch githubToken 置空, 避免 Gitea token 拉 ghcr.io 失败 - runs-on 标签对齐现场 runner: ubuntu-22.04 改为 ubuntu-24.04 - run-vcpkg/setup-ndk 钉到 node20 运行时 SHA, 规避 node24 action 不兼容 - decrypt-secrets 的 pip 安装增加三级回退; cleanzip 请求增加超时重试 - 所有产物上传 curl 增加 --fail/超时/重试参数 - macOS 动态定位 *.app 不再硬编码 RustDesk.app, DMG 路径改用 GITHUB_WORKSPACE - 修复签名条件判断、PowerShell 变量空格等小问题 - setup.md 更新 runner 标签表及 Windows/macOS host 准备要求
90 lines
4.6 KiB
HTML
90 lines
4.6 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}我的构建 · RustDesk 客户端定制平台{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="page-head">
|
|
<h1 class="page-title">我的构建任务</h1>
|
|
<p class="page-subtitle">这里展示你提交的全部自定义客户端构建任务,单次构建通常需要 30~45 分钟。</p>
|
|
</div>
|
|
|
|
{% if builds %}
|
|
<div class="card">
|
|
<div class="table-wrap">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>提交时间</th>
|
|
<th>配置名称</th>
|
|
<th>目标平台</th>
|
|
<th>构建平台</th>
|
|
<th>状态</th>
|
|
<th>任务编号</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for run in builds %}
|
|
<tr>
|
|
<td class="text-muted" style="white-space:nowrap">{{ run.created_at|date:"Y-m-d H:i" }}</td>
|
|
<td><strong>{{ run.filename|default:"—" }}</strong></td>
|
|
<td>{{ run.platform_label }}</td>
|
|
<td><span class="badge {{ run.backend_badge_class }}">{{ run.backend_label }}</span></td>
|
|
<td><span class="badge {{ run.status_badge }} {% if not run.is_finished %}badge-dot{% endif %}">{{ run.status_label }}</span></td>
|
|
<td class="mono text-muted">{{ run.short_uuid }}</td>
|
|
<td style="white-space:nowrap">
|
|
<a class="btn btn-secondary btn-sm"
|
|
href="/check_for_file?filename={{ run.filename|urlencode }}&uuid={{ run.uuid|urlencode }}&platform={{ run.platform|urlencode }}">
|
|
{% if run.status == 'success' %}<svg class="icon"><use href="#i-download"/></svg> 下载产物{% elif run.is_finished %}<svg class="icon"><use href="#i-eye"/></svg> 查看详情{% else %}<svg class="icon"><use href="#i-eye"/></svg> 查看进度{% endif %}
|
|
</a>
|
|
{% if run.github_log_url %}
|
|
<a class="btn btn-secondary btn-sm" href="{{ run.github_log_url }}" target="_blank" rel="noopener">
|
|
<svg class="icon"><use href="#i-external"/></svg> 日志
|
|
</a>
|
|
{% endif %}
|
|
{% if run.is_finished and run.config_data %}
|
|
<form method="post" class="inline-form" action="{% url 'retry_build' run.id %}"
|
|
onsubmit="return confirm('将使用该任务的原始配置重新提交一次构建(原任务记录保留),是否继续?');">
|
|
{% csrf_token %}
|
|
<button type="submit" class="btn btn-secondary btn-sm">
|
|
<svg class="icon"><use href="#i-refresh"/></svg> 重试
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
{% if not run.is_finished %}
|
|
<form method="post" class="inline-form" action="{% url 'stop_build' run.id %}"
|
|
onsubmit="return confirm('确定停止构建任务「{{ run.filename|default:run.short_uuid|escapejs }}」吗?停止后可在列表中使用「重试」重新发起。');">
|
|
{% csrf_token %}
|
|
<button type="submit" class="btn btn-warning btn-sm">
|
|
<svg class="icon"><use href="#i-stop"/></svg> 停止
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
{% if run.is_finished %}
|
|
<form method="post" class="inline-form" action="{% url 'delete_my_build' run.id %}"
|
|
onsubmit="return confirm('确定删除任务「{{ run.filename|default:run.short_uuid|escapejs }}」吗?将同时删除服务器上的安装包文件,且不可恢复。');">
|
|
{% csrf_token %}
|
|
<button type="submit" class="btn btn-danger btn-sm">
|
|
<svg class="icon"><use href="#i-trash"/></svg> 删除
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="card">
|
|
<div class="empty-state">
|
|
<div class="empty-icon"><svg class="icon" style="width:42px;height:42px"><use href="#i-package"/></svg></div>
|
|
<h3>还没有构建任务</h3>
|
|
<p>填写一份客户端配置,即可开始生成你的专属 RustDesk 客户端。</p>
|
|
<a class="btn btn-primary" href="{% url 'generator' %}">立即定制客户端</a>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% endblock %}
|