| <!DOCTYPE html> |
| <!-- |
| Copyright 2022 Go Authors All rights reserved. |
| Use of this source code is governed by a BSD-style |
| license that can be found in the LICENSE file. |
| --> |
| |
| <html lang="en"> |
| <head> |
| <title>{{$.Dashboard.Name}} Build Dashboard</title> |
| <link rel="stylesheet" href="/style.css"/> |
| <script async> |
| let showUnsupported = window.location.hash.substr(1) !== 'short'; |
| |
| function redraw() { |
| showUnsupported = !document.querySelector('#showshort').checked; |
| document.querySelectorAll('.unsupported').forEach(el => { |
| el.hidden = !showUnsupported; |
| }); |
| window.location.hash = showUnsupported ? '' : 'short'; |
| document.querySelectorAll('.Build-builderOS').forEach(el => { |
| el.setAttribute( |
| 'colspan', |
| el.getAttribute( |
| showUnsupported ? 'data-archs' : 'data-firstClassArchs' |
| ) |
| ); |
| }); |
| document.querySelectorAll('.Build-osColumn').forEach(el => { |
| el.setAttribute( |
| 'span', |
| el.getAttribute( |
| showUnsupported ? 'data-archs' : 'data-firstClassArchs' |
| ) |
| ); |
| }); |
| } |
| |
| window.addEventListener('load', () => { |
| document.querySelector('#showshort').checked = !showUnsupported; |
| document.querySelector('#showshort').addEventListener('change', redraw); |
| redraw(); |
| }); |
| </script> |
| </head> |
| |
| <body class="Dashboard"> |
| <header class="Dashboard-topbar"> |
| <h1> |
| <a href="/">Go Build Coordinator</a> |
| </h1> |
| <nav> |
| <ul> |
| <li><a href="/dashboard">Build Dashboard</a></li> |
| <li><a href="https://perf.golang.org/dashboard">Performance Dashboard</a></li> |
| <li><a href="/builders">Builders</a></li> |
| </ul> |
| </nav> |
| </header> |
| |
| <form action="../.." method="GET"> |
| <input type="hidden" name="repo" value="{{.Package.Path}}"/> |
| <nav class="Dashboard-controls"> |
| {{if not (eq .Branch "")}} |
| <label> |
| <select name="branch" onchange="this.form.submit()"> |
| {{range $.Branches}} |
| <option value="{{.}}" {{if eq $.Branch .}} selected{{end}}> |
| {{.}} |
| </option> |
| {{end}} |
| </select> |
| </label> |
| {{end}} |
| <label> |
| <input type="checkbox" id="showshort"/> |
| show only |
| <a href="http://golang.org/wiki/PortingPolicy">first-class ports</a> |
| </label> |
| </nav> |
| </form> |
| <h2 class="Dashboard-packageName">{{$.Package.Name}}</h2> |
| |
| <div class="page Build-scrollTable"> |
| {{if $.Commits}} |
| <table class="Build"> |
| <colgroup class="col-hash" {{if $.Package.Path}} span="2" {{end}}></colgroup> |
| <colgroup class="col-user"></colgroup> |
| <colgroup class="col-time"></colgroup> |
| <colgroup class="Build-descriptionColumn col-desc"></colgroup> |
| {{range $.Builders}} |
| <colgroup class="Build-osColumn col-result{{if .Unsupported}} unsupported{{end}}" span="{{.Archs | len}}" |
| data-archs="{{.Archs | len}}" data-firstClassArchs="{{.FirstClassArchs | len}}"></colgroup> |
| {{end}} |
| <tr class="Build-builderOSRow"> |
| {{if $.Package.Path}} |
| <th colspan="2">revision</th> |
| {{else}} |
| <th> </th> |
| {{end}} |
| <th></th> |
| <th></th> |
| <th></th> |
| {{range $.Builders}} |
| <th class="Build-builderOS{{if not .FirstClass}} unsupported{{end}}" colspan="{{.Archs | len}}" |
| data-archs="{{.Archs | len}}" data-firstClassArchs="{{.FirstClassArchs | len}}"> |
| {{.OS}} |
| </th> |
| {{end}} |
| </tr> |
| |
| <tr class="Build-builderArchRow"> |
| {{if $.Package.Path}} |
| <th class="result arch">repo</th> |
| <th class="result arch">{{$.Dashboard.Name}}</th> |
| {{else}} |
| <th> </th> |
| {{end}} |
| <th></th> |
| <th></th> |
| <th></th> |
| {{range $.Builders}} |
| {{range.Archs}} |
| <th class="result arch{{if not (.FirstClass)}} unsupported{{end}}" title="{{.Name}}"> |
| {{.Arch}} |
| </th> |
| {{end}} |
| {{end}} |
| </tr> |
| |
| <tr class="Build-builderTagRow"> |
| <th {{if $.Package.Path}}colspan="2" {{end}}> </th> |
| <th></th> |
| <th></th> |
| <th></th> |
| {{range $.Builders}} |
| {{range.Archs}} |
| <th class="Build-resultArch result arch{{if not (.FirstClass)}} unsupported{{end}}" title="{{.Name}}"> |
| {{.Tag}} |
| </th> |
| {{end}} |
| {{end}} |
| </tr> |
| {{range $c := $.Commits}} |
| <tr class="commit"> |
| <td class="hash"> |
| <span class="ShortHash"> |
| <a href="https://go-review.googlesource.com/q/{{$c.Hash}}"> |
| {{$c.Hash}} |
| </a> |
| </span> |
| </td> |
| <td class="Build-user" title="{{$c.User}}">{{$c.ShortUser}}</td> |
| <td class="Build-commitTime"> |
| {{$c.Time}} |
| </td> |
| <td class="Build-desc desc" title="{{$c.Desc}}">{{$c.Desc}}</td> |
| {{range $b := $.Builders}} |
| {{range $a := .Archs}} |
| <td class="Build-result {{if not $a.FirstClass}} unsupported{{end}}" data-builder="{{$a.Name}}"> |
| {{with $c.ResultForBuilder $a.Name}} |
| {{if .OK}} |
| <a class="Build-resultOK" href="https://build.golang.org/log/{{.LogHash}}" |
| title="Build log of {{$a.Name}} on commit {{shortHash $c.Hash}}.">ok</a> |
| {{end}} |
| {{end}} |
| </td> |
| {{end}} |
| {{end}} |
| </tr> |
| {{end}} |
| </table> |
| |
| {{with $.Pagination}} |
| <div class="paginate"> |
| <nav> |
| {{if .HasPrev}} |
| <a href="?repo={{$.Package.Path}}&page={{.Prev}}&branch={{$.Branch}}"> |
| newer |
| </a> |
| {{else}} |
| newer |
| {{end}} |
| {{if .Next}} |
| <a href="?repo={{$.Package.Path}}&page={{.Next}}branch={{$.Branch}}"> |
| older |
| </a> |
| {{else}} |
| older |
| {{end}} |
| {{if .HasPrev}} |
| <a href="?branch={{$.Branch}}"> |
| latest |
| </a> |
| {{else}} |
| latest |
| {{end}} |
| </nav> |
| </div> |
| {{end}} |
| {{else}} |
| <p>No commits to display. Hm.</p> |
| {{end}} |
| </div> |
| </body> |
| </html> |