OXYGENHUB
# 3e868a1f94e1 oxygenhub / templates / repo_artifacts.html
1.6 KiB · HTML · last changed Repository bar: an Artifacts menu and a More menu 18 days ago source blame history raw
1
{% extends "base.html" %}
2
{% import "repo_tabs.html" as m %}
3
{% block title %}Build artifacts · {{ repo.owner }}/{{ repo.name }}{% endblock %}
4
{% block bodyattrs %} data-repo="{{ repo.url }}"{% endblock %}
5
{% block tabs %}{% call m::tabs(repo, "artifacts") %}{% endblock %}
6
{% block content %}
7
<div class="head"><h1>Build artifacts <small>{{ artifacts.len() }}</small></h1></div>
8
<p class="small mute">What this repository's OxygenFlow jobs kept (the <code>artifact</code> blocks of a job's <code>output</code>), newest first{% if artifacts.len() as i64 == limit %}, the latest {{ limit }}{% endif %}. Each run's page has its own; a release can attach one as an asset.</p>
9
{% if artifacts.is_empty() %}<p class="empty">No artifacts yet. A job keeps a file with an <code>output { artifact "NAME" { path "/src/…" } }</code> block in <code>.flow/pipeline.kdl</code>.</p>{% else %}
10
<div class="table"><table>
11
<tr><th>Artifact</th><th>Run</th><th>Job</th><th>Size</th><th>BLAKE3</th><th>Made</th></tr>
12
{% for a in artifacts %}
13
<tr>
14
  <td><a href="{{ repo.url }}/flow/{{ a.run_number }}/artifacts/{{ a.job|urlencode }}/{{ a.name|urlencode }}" title="{{ a.path }}">{{ a.name }}</a></td>
15
  <td><a href="{{ repo.url }}/flow/{{ a.run_number }}">#{{ a.run_number }}</a> <span class="small mute">{{ a.bookmark }}</span></td>
16
  <td>{{ a.job }}</td>
17
  <td class="small">{{ a.size|bytes }}</td>
18
  <td><code class="small" title="{{ a.content }}">{{ a.content|short }}</code></td>
19
  <td class="small"><time title="{{ a.created_ms|when_i }}">{{ a.created_ms|ago_i }}</time></td>
20
</tr>
21
{% endfor %}
22
</table></div>
23
{% endif %}
24
{% endblock %}