OXYGENHUB
◆ api-unknown-fields oxygenhub / templates / repo_images.html
1.6 KiB · HTML · last changed Repository bar: an Artifacts menu and a More menu 17 days ago source blame history raw
1
{% extends "base.html" %}
2
{% import "repo_tabs.html" as m %}
3
{% block title %}Images · {{ repo.owner }}/{{ repo.name }}{% endblock %}
4
{% block bodyattrs %} data-repo="{{ repo.url }}"{% endblock %}
5
{% block tabs %}{% call m::tabs(repo, "images") %}{% endblock %}
6
{% block content %}
7
<div class="head"><h1>Images <small>{{ images.len() }}</small></h1></div>
8
<p class="small mute">The runner images (root file systems) this repository's jobs ran on in the last {{ days }} days, named by their BLAKE3 as <code>sandbox</code> blocks pin them (<code>rootfs "cas://blob/…"</code>). A runner without one fetches it from the hub, when the hub keeps it.</p>
9
{% if images.is_empty() %}<p class="empty">No jobs ran on a pinned image in the last {{ days }} days.</p>{% else %}
10
<div class="table"><table>
11
<tr><th>Image</th><th>Architecture</th><th>Size</th><th>On the hub</th><th>Jobs</th><th>Last used</th></tr>
12
{% for i in images %}
13
<tr>
14
  <td>{% if i.hashed %}<code title="{{ i.image }}">{{ i.image|short }}</code>{% else %}<code>{{ i.image }}</code>{% endif %}</td>
15
  {% if let Some((size, arch)) = i.kept %}<td class="small">{% if arch.is_empty() %}<span class="mute">unknown</span>{% else %}{{ arch }}{% endif %}</td><td class="small">{{ size|bytes }}</td><td><span class="sig sig-valid">✔</span> kept</td>{% else %}<td class="small mute">unknown</td><td class="small mute">unknown</td><td><span class="sig sig-unsigned">○</span> <span class="small mute">runners only</span></td>{% endif %}
16
  <td>{{ i.jobs }}</td>
17
  <td class="small"><time title="{{ i.last_ms|when_i }}">{{ i.last_ms|ago_i }}</time></td>
18
</tr>
19
{% endfor %}
20
</table></div>
21
{% endif %}
22
{% endblock %}