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/run.html +13−6

@@ -6,8 +6,8 @@
6 6 <h1>Run · {{.Run.JobTitle}}</h1>
7 7 <p class="page-sub">
8 8 <span class="status {{.Run.Status}}">{{.Run.Status}}</span>
9 {{if .Run.Trigger}}· {{.Run.Trigger}}{{if .Run.TriggerAction}} {{.Run.TriggerAction}}{{end}}{{end}}
10 · {{.Run.WorkflowTitle}}
9 {{if .Run.TriggerTitle}}· {{.Run.TriggerTitle}}{{end}}
10 {{if ne .Run.JobTitle .Run.WorkflowTitle}}· {{.Run.WorkflowTitle}}{{end}}
11 11 · {{if .Run.Tag}}tag {{.Run.Tag}}{{else}}{{.Run.Branch}}{{end}}
12 12 at <a class="sha" href="/r/{{.Name}}/commit/{{.Run.SHA}}">{{short .Run.SHA}}</a>
13 13 · attempt {{.Run.Attempts}}
@@ -55,6 +55,11 @@
55 55 <strong><a class="sha" href="/r/{{.Name}}/commit/{{.Run.SHA}}">{{short .Run.SHA}}</a></strong>
56 56 <span class="status-note">{{if .Run.Tag}}tag {{.Run.Tag}}{{else}}branch {{.Run.Branch}}{{end}}{{if eq .Run.Status "failed"}} · exit {{.Run.ExitCode}}{{end}}</span>
57 57 </div>
58 <div class="card">
59 <span class="run-summary-label">{{icon "file-code"}}Workflow</span>
60 <strong><a href="/r/{{.Name}}/blob/{{.Run.SHA}}/{{pathurl .Run.Workflow}}">{{.Run.WorkflowTitle}}</a></strong>
61 <span class="status-note"><code>{{.Run.Workflow}}</code></span>
62 </div>
58 63 </div>
59 64
60 65 {{if eq .Run.Status "canceled"}}
@@ -67,21 +72,23 @@
67 72 {{if .Attestation}}<p class="muted">reported by <strong>{{.Signer}}</strong> · the instance accepted this result from that account's runner connection, and logged it</p>{{end}}
68 73 {{if .Counts}}<p class="muted">counts as a check for this repository</p>{{else if .CountsWhy}}<p class="muted">does not count as a check: {{.CountsWhy}}</p>{{end}}
69 74
70 <h2>{{icon "terminal"}}Logs</h2>
75 <h2 class="with-more"><span>{{icon "terminal"}}Logs</span>{{if .HasLog}} <a class="more" href="/r/{{.Name}}/runs/{{.Run.ID}}/log?attempt={{.LogAttempt}}&amp;download=1">{{icon "file"}}Download full log</a>{{end}}</h2>
71 76 {{if .HasLog}}
72 77 {{if gt (len .Logs) 1}}<div class="run-logbar">
73 78 {{range .Logs}}<a class="chip" href="/r/{{$.Name}}/runs/{{$.Run.ID}}/log?attempt={{.Attempt}}">{{icon "file"}}attempt {{.Attempt}}</a> {{end}}
74 79 </div>{{end}}
75 80 <div class="card run-log-card">
76 <details class="run-log run-log-live" {{if .Live}}open{{end}}>
81 {{if .Live}}
82 <details class="run-log run-log-live" open>
77 83 <summary>
78 84 {{icon "terminal"}}<span class="run-log-title">Job output</span>
79 <span class="run-log-meta">attempt {{.LogAttempt}} · <span class="run-log-state">{{if .Live}}live{{else}}complete{{end}}</span></span>
85 <span class="run-log-meta">attempt {{.LogAttempt}} · <span class="run-log-state">live</span></span>
80 86 </summary>
81 87 <pre class="run-log-text" data-log-stream
82 88 data-log-url="/r/{{.Name}}/runs/{{.Run.ID}}/log?attempt={{.LogAttempt}}"
83 data-log-final="{{if .Live}}0{{else}}1{{end}}"></pre>
89 data-log-final="0"></pre>
84 90 </details>
91 {{end}}
85 92 {{range .Steps}}
86 93 <details class="run-log{{if .LogURL}} run-step-log{{end}}"{{if .LogURL}} hx-get="{{.LogURL}}" hx-trigger="toggle once" hx-target="find pre" hx-swap="textContent"{{end}}>
87 94 <summary>