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.
Give workflows and jobs a name and description
1cde8b9ea2ba1483beb90f19cde0f58aede2a661 · Keenan Nemetz · 8d ago · parent 30de4a44
Give workflows and jobs a name and description The workflows page showed the file path and job IDs, so a reader had to open the YAML comments to learn what a workflow was for. Add optional top-level and job-level name and description fields, default them to the file stem and job ID, pin them with a queued run, and show them on the workflows and run pages. Also document what the workflow format still cannot express, and state that CI jobs are independent and unordered: only a local run uses the declaration order. Part of: #138
server/web/templates/workflows.html +8−3
| @@ -17,15 +17,20 @@ | |||
| 17 | 17 | {{if .Workflows}} | |
| 18 | 18 | {{range .Workflows}}{{$wf := .}} | |
| 19 | 19 | <div class="card"> | |
| 20 | <h2>{{icon "list"}}{{.Path}}</h2> | ||
| 21 | <p class="muted">branches {{join .Branches ", "}}{{if .Tags}} · tags {{join .Tags ", "}}{{end}}</p> | ||
| 20 | <h2>{{icon "list"}}{{.Name}}</h2> | ||
| 21 | {{if .Description}}<p>{{.Description}}</p>{{end}} | ||
| 22 | <p class="muted"><code>{{.Path}}</code> · branches {{join .Branches ", "}}{{if .Tags}} · tags {{join .Tags ", "}}{{end}}</p> | ||
| 22 | 23 | <div class="panel"> | |
| 23 | 24 | <table> | |
| 24 | 25 | <thead><tr><th>Job</th><th>Runs on</th><th>Image</th><th>Steps</th><th>Outputs</th><th>Last run</th></tr></thead> | |
| 25 | 26 | <tbody> | |
| 26 | 27 | {{range .Jobs}} | |
| 27 | 28 | <tr> | |
| 28 | <td><a href="/r/{{$.Name}}/blob/{{esc $.Ref}}/{{pathurl $wf.Path}}">{{.ID}}</a></td> | ||
| 29 | <td> | ||
| 30 | <a href="/r/{{$.Name}}/blob/{{esc $.Ref}}/{{pathurl $wf.Path}}">{{.Name}}</a> | ||
| 31 | {{if ne .Name .ID}}<span class="muted"><code>{{.ID}}</code></span>{{end}} | ||
| 32 | {{if .Description}}<div class="muted">{{.Description}}</div>{{end}} | ||
| 33 | </td> | ||
| 29 | 34 | <td class="muted">{{if .Labels}}{{join .Labels ", "}}{{else}}any runner{{end}}</td> | |
| 30 | 35 | <td>{{if .Image}}<code>{{.Image}}</code>{{else}}<span class="muted">none</span>{{end}}</td> | |
| 31 | 36 | <td class="muted">{{.Steps}}</td> | |