Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Make the run list say what triggered each run

57dc79afa8097830de03fc2fc2c19561470b6d36 · Keenan Nemetz · 6d ago · parent 338a19dd

Make the run list say what triggered each run

The runs table said only which ref a run used, so a push, an issue event
and a manual dispatch looked alike. Give each run a TriggerTitle and show
it in a "Triggered by" column; the run page uses the same words.

Drop the separate workflows page. The run list is where a job is found,
and the run page now links the workflow definition it ran, so a second
page listing the same jobs only split the answer.

Show the full log viewer only while a run is going. A finished run has
per-step logs, and the full log is a download rather than a second copy
of every step's output.

server/web/templates/workflows.html −70

@@ -1,70 +0,0 @@
1 {{define "workflows"}}
2 {{template "header" .}}
3 {{template "repohead" (nav .Page "runs")}}
4
5 <div class="page-head">
6 <div class="page-head-main">
7 <h1>Workflows</h1>
8 <p class="page-sub">Jobs defined on <code>{{.Ref}}</code>. A push that matches a trigger queues them.</p>
9 </div>
10 <div class="page-head-actions">
11 <a class="button secondary" href="/r/{{.Name}}/runs">{{icon "play"}}Runs</a>
12 </div>
13 </div>
14
15 {{range .Problems}}<div class="flash bad">{{.}}</div>{{end}}
16
17 {{if .Workflows}}
18 {{range .Workflows}}{{$wf := .}}
19 <div class="card">
20 <h2>{{icon "list"}}{{.Name}}</h2>
21 {{if .Description}}<p>{{.Description}}</p>{{end}}
22 <p class="muted"><code>{{.Path}}</code>
23 {{if .Branches}} · branches {{join .Branches ", "}}{{end}}
24 {{if .Tags}} · tags {{join .Tags ", "}}{{end}}
25 {{if .ChangeRequest}} · changes {{join .ChangeRequest ", "}}{{end}}
26 {{if .Issues}} · issues {{join .Issues ", "}}{{end}}
27 {{if .Comments}} · comments {{join .Comments ", "}}{{end}}
28 {{if .Schedules}} · schedule {{join .Schedules ", "}}{{end}}
29 {{if .Dispatch}} · manual{{end}}
30 </p>
31 {{if .Dispatch}}<p><a class="button secondary" href="/r/{{$.Name}}/workflows/dispatch?workflow={{pathurl .Path}}">{{icon "play"}}Run workflow</a></p>{{end}}
32 <div class="panel">
33 <table>
34 <thead><tr><th>Job</th><th>Runs on</th><th>Image</th><th>Steps</th><th>Outputs</th><th>Last run</th></tr></thead>
35 <tbody>
36 {{range .Jobs}}
37 <tr>
38 <td>
39 <a href="/r/{{$.Name}}/blob/{{esc $.Ref}}/{{pathurl $wf.Path}}">{{.Name}}</a>
40 {{if ne .Name .ID}}<span class="muted"><code>{{.ID}}</code></span>{{end}}
41 {{if .Description}}<div class="muted">{{.Description}}</div>{{end}}
42 </td>
43 <td class="muted">{{if .Labels}}{{join .Labels ", "}}{{else}}any runner{{end}}</td>
44 <td>{{if .Image}}<code>{{.Image}}</code>{{else}}<span class="muted">none</span>{{end}}
45 {{if .Network}}<div class="muted">{{if eq .Network "none"}}no network{{else}}network {{.Network}}{{end}}</div>{{end}}</td>
46 <td class="muted">{{.Steps}}</td>
47 <td class="muted">{{.Artifacts}} artifact(s){{if .Pages}} · site{{end}}</td>
48 <td>
49 {{if .Last}}<a href="/r/{{$.Name}}/runs/{{.Last.ID}}">{{.Last.Status}}</a> <span class="muted">{{since .Last.Created.Unix}}</span>{{else}}<span class="muted">never</span>{{end}}
50 </td>
51 </tr>
52 {{end}}
53 </tbody>
54 </table>
55 </div>
56 </div>
57 {{end}}
58 {{else if .HasCommit}}
59 <div class="empty-state">
60 <p>No workflows on <code>{{.Ref}}</code>.</p>
61 <p class="muted">Add a file under <code>.vole/workflows/</code> and push to a matching branch.</p>
62 </div>
63 {{else}}
64 <div class="empty-state">
65 <p>The repository has no commits yet.</p>
66 <p class="muted">Push a workflow under <code>.vole/workflows/</code> to get started.</p>
67 </div>
68 {{end}}
69 {{template "footer" .}}
70 {{end}}