build_stats.html 3.85 KB
Newer Older
Martin Cejp's avatar
Martin Cejp committed
1
2
3
4
5
<!DOCTYPE html>
<html>
<head>
<title>Poly94 builds</title>

Martin Cejp's avatar
Martin Cejp committed
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<style>
/* color scheme from Bootstrap v5 */
body {
    font-family: "Segoe UI", "Roboto", sans-serif;
}
body, td {
    font-size: 14px;
}
a, a:hover, a:visited, a:active {
    color: #0d6efd;
    text-decoration: none;
}
a:hover {
    color: #0a58ca;
}

/* border-color derived from text-muted color: https://meyerweb.com/eric/tools/color-blend/#6C757D:FFFFFF:4:rgbd */
table.builds {
    border-spacing: 0;
    border-collapse: collapse;
}
table.builds>thead>tr>th {
    font-weight: 600;
29
    padding: 0.25em 1em 0.25em 1em;
Martin Cejp's avatar
Martin Cejp committed
30
31
32
33
    border-bottom: 2px solid rgb(226,227,229);
    text-align: left;
}
table.builds>tbody>tr>td {
34
    padding: 0.25em 1em 0.25em 1em;
Martin Cejp's avatar
Martin Cejp committed
35
36
37
38
39
40
41
42
43
44
45
46
47
    text-align: right;
}

table.builds>tbody>tr>td {
    border-top: 1px solid rgb(226,227,229);
}
/* bottom border at end of table */
table.device-detail>tbody>tr:last-child>td {
    border-bottom: 1px solid rgb(226,227,229);
}
td.error { background-color: rgb(220, 53, 69); color: #fff; font-weight: 600 }
td.success { background-color: rgb(25, 135, 84); color: #fff; font-weight: 600 }
</style>
Martin Cejp's avatar
Martin Cejp committed
48
</head>
Martin Cejp's avatar
Martin Cejp committed
49

Martin Cejp's avatar
Martin Cejp committed
50
<body>
51
{% set RESOURCES = ["DP16KD", "EHXPLLL", "MULT18X18D", "TRELLIS_COMB", "TRELLIS_FF", "TRELLIS_RAMW"] %}
Martin Cejp's avatar
Martin Cejp committed
52
53
54
55
56
57
58
59
60
61

<table class="builds">
  <thead>
    <tr>
      <th>ID</th>
      <th>Timestamp</th>
      <th>Commit</th>
      <th>Sim</th>
      <th>Build</th>
      <th>f<sub>max</sub></th>
Martin Cejp's avatar
Martin Cejp committed
62
      <th>Benchmark</th>
Martin Cejp's avatar
Martin Cejp committed
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

      {% for res in RESOURCES %}
      <th>{{ res }}</th>
      {% endfor %}
    </tr>
  </thead>
  <tbody>
    {% for build in builds %}
    <tr>
      <td>{{ build.id }}</td>
      <td><a href="{{ build.pipeline_url }}">{{ build.pipeline_timestamp }}</a></td>
      <td style="text-align: left">
        <p><a href="{{ project_url }}/-/commit/{{ build.commit_sha1 }}">{{ build.branch }} &RightArrow; {{ build.commit_sha1[:8] }}</a></p>
        <p>{{ (build.commit_title | default(""))[:50] }}</p>
      </td>

      {% if build.sim.result == "pass" %}
      <td style="text-align: center" class="success">PASS</td>
      {% elif build.sim.result == "fail" %}
82
83
84
85
86
87
88
      <td style="text-align: center" class="error">
        {% if build.sim.failed_testcases | default(None) %}
        <abbr title="Failed testcases:&#x0A;{{ build.sim.failed_testcases | join("\n") }}">FAIL</abbr>
        {% else %}
        FAIL
        {% endif %}
      </td>
Martin Cejp's avatar
Martin Cejp committed
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
      {% else %}
      <td style="text-align: center">?</td>
      {% endif %}

      {% if build.build.result == "pass" %}
      <td style="text-align: center" class="success">PASS</td>
      {% elif build.build.result == "fail" %}
      <td style="text-align: center" class="error">FAIL</td>
      {% else %}
      <td style="text-align: center">?</td>
      {% endif %}

      <td>
        <table>
        {% for clock, result in (build.build.fmax | default({})).items() %}
          <tr>
            <td>{{ clock|replace("$glbnet$", "") }}</td>
            <td style="padding-left: 0.5em; text-align: right; opacity: 0.7">{{ "%.1f" | format(result.constraint) }}</td>
            <td style="padding-left: 0.5em; text-align: right">{{ "%.1f" | format(result.achieved) }}</td>
          </tr>
        {% endfor %}
        </table>
      </td>

Martin Cejp's avatar
Martin Cejp committed
113
114
115
116
117
118
119
120
121
      <td>
        {% if build.benchmark %}
        <table>
          <tr><td>{{ "%.1f" | format(build.benchmark["dmips"]) }} DMIPS</td></tr>
          <tr><td>{{ "%.2f" | format(build.benchmark["dmips_per_mhz"]) }} DMIPS / MHz</td></tr>
        </table>
        {% endif %}
      </td>

Martin Cejp's avatar
Martin Cejp committed
122
123
124
125
      {% for res in RESOURCES %}
      <td>
        {% set result = (build.build.utilization | default({}))[res] %}
        {% if result %}
126
        {{ result.used }}/{{ result.available }} {% if res == "DP16KD" %}<div>({{ result.used * 18 }} kbit)</div>{% endif %}
Martin Cejp's avatar
Martin Cejp committed
127
128
129
130
131
132
133
134
135
136
        {% endif %}
      </td>
      {% endfor %}

      {#
      <td>{{ build }}</td>
      #}
    </tr>
    {% endfor %}
  </tbody>
Martin Cejp's avatar
Martin Cejp committed
137
138
139
140
</table>

</body>
</html>