b6b7e4cf Andy McCall 1 month ago ↶
1
{% extends "base.html" %}
2
{% block title %}{{ r.name }} · Runners{% endblock %}
3
{% block mainclass %} class="wide"{% endblock %}
4
{% block content %}
5
< div class = " head " > < h1 > {{ r.name }} < small > < span class = " runner-status st-{{ r.status() }} " > {{ r.status() }}</ span > · < a href = " /admin/runners" > Runners</ a > </ small > </ h1 > </ div >
6
< section class = " panel " >
7
< dl class = " facts " >
8
< dt > Signing key</ dt > < dd > {% if r.key.is_empty() %}< span class = " mute " > bound on its first signed receipt</ span > {% else %}< code class = " full " > {{ r.key }}</ code > {{ r.key_name }}{% endif %}</ dd >
9
< dt > Machine</ dt > < dd > {% if r.arch.is_empty() %}< span class = " mute " > not reported yet</ span > {% else %}{{ r.arch }} · {{ r.os }} · flow {{ r.version }}{% endif %}</ dd >
10
< dt > Labels</ dt > < dd > {% for l in r.label_list() %}< span class = " lbl " > {{ l }}</ span > {% endfor %}{% if r.label_list().is_empty() %}< span class = " mute " > none</ span > {% endif %}</ dd >
11
< dt > Capacity</ dt > < dd > {{ r.max_jobs|plural("job", "jobs") }} at once{% if let Some(m) = r.memory_mib %}, {{ m }} MiB{% endif %}{% if let Some(c) = r.cpus %}, {{ c }} vCPU{% endif %}</ dd >
12
< dt > Running now</ dt > < dd > {{ running|plural("job", "jobs") }}</ dd >
13
< dt > Ran</ dt > < dd > {{ jobs|plural("job", "jobs") }}, {{ passed }} passed{% if jobs > 0 %} ({{ passed * 100 / jobs }}%){% endif %}, busy {{ self.busy() }}</ dd >
14
< dt > Registered</ dt > < dd > {% if r.source == "config" %}configured in hub.toml{% else %}by {{ r.created_by }}{% endif %}, < time title = " {{ r.created_ms|when_i }}" > {{ r.created_ms|ago_i }}</ time > </ dd >
15
< dt > Last seen</ dt > < dd > {% if let Some(t) = r.last_seen_ms %}< time title = " {{ t|when_i }}" > {{ t|ago_i }}</ time > {% else %}never{% endif %}</ dd >
16
</ dl >
17
</ section >
18
< section class = " panel " >
19
< h2 > Jobs</ h2 >
20
{% if history.is_empty() %}< p class = " mute " > No jobs yet.</ p > {% else %}
21
< div class = " table " > < table >
22
< tr > < th > Repository</ th > < th > Run</ th > < th > Job</ th > < th > Status</ th > < th > Duration</ th > < th > Started</ th > < th > Receipt</ th > </ tr >
23
{% for j in history %}< tr >
24
< td > < a href = " /{{ j.owner }}/{{ j.repo }}" > {{ j.owner }}/{{ j.repo }}</ a > </ td >
25
< td > < a href = " /{{ j.owner }}/{{ j.repo }}/flow/{{ j.run_number }}" > #{{ j.run_number }}</ a > </ td >
26
< td > {{ j.job }}</ td >
27
< td > < span class = " flow-glyph st-{{ j.status }} " > {{ crate::web::flow::glyph(j.status) }}</ span > {{ j.status }}</ td >
28
< td > {{ crate::web::runners::duration(j) }}</ td >
29
< td class = " small " > {% if let Some(t) = j.started_ms %}< time title = " {{ t|when_i }}" > {{ t|ago_i }}</ time > {% endif %}</ td >
30
< td class = " small " > {% if !j.receipt_attest.is_empty() %}< a href = " /{{ j.owner }}/{{ j.repo }}/receipts/{{ j.receipt_attest }}" > signed</ a > {% endif %}</ td >
31
</ tr > {% endfor %}
32
</ table > </ div >
33
{% if let Some(b) = older %}< p > < a href = " ?before={{ b }}" > Older jobs</ a > </ p > {% endif %}
34
{% endif %}
35
</ section >
36
{% endblock %}