does-it-build/templates/target.html
nora e4c69f17be
Add notifications for target maintainers (#10)
This adds a feature where maintainers can add themselves to an array in the source to receive notifications whenever the target fails.

The way this works is via GitHub, I created a new repository https://github.com/Noratrieb/does-it-build-notifications where an app will create issues that ping the respective users. This is the easiest option for me and also fits nicely into people's workflows on GitHub.

Whenever a target fails, an issue is created for it. This issue is kept open (with a new comment every day that it continues to fail), and then closed when the target builds again.
2025-11-10 20:52:15 +01:00

81 lines
2.6 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{{target}} build history</title>
<link rel="stylesheet" href="/index.css" />
<style>
.build-indicator-big {
padding: 10px;
}
</style>
</head>
<body>
<h1>Target build history for {{target}}</h1>
<a href="/">Home</a>
<div style="margin-top: 20px" class="{{status}} build-indicator-big">
{{status}}
</div>
<p>
This contains the history of this target. Core is built with
<code>cargo build --release -Zbuild-std=core</code>. This checks that
codegen/linking of core works, but does not check whether std builds.
</p>
<p>
The build is performed with
<code>cargo build --release -Zbuild-std</code> for a library crate. This
checks whether everything builds successfully (excluding binary linking,
which often requires complex toolchains). For no-std targets, Cargo's
build-std logic is used for figuring out whether to build std or not. On
older targets (older than November 2024) this does not always work
reliably, so some failed std builds there are simply no-std targets.
</p>
<p>
🔔 does-it-build supports sending notifications to target maintainers via GitHub issues.
You can add yourself with <a href="{{notification_pr_url}}">a PR</a>.
</p>
{% if let Some(maintainers) = maintainers %}
<p>
Maintainers that will receive pings for this target:
{% for maintainer in maintainers %}
<a href="https://github.com/{{maintainer}}">{{maintainer}}</a>
{% endfor %}
</p>
{% endif %}
{% if showing_failures %}
<p>
<a href="/target?target={{target}}">show all</a>
</p>
{% else %}
<p>
<a href="/target?target={{target}}&failures=true">filter failures</a>
</p>
{% endif %}
<table>
<tr>
<th>nightly</th>
<th>std<br />build</th>
</tr>
{% for build in builds %}
<tr>
<td><a href="/nightly?nightly={{build.0}}">{{ build.0 }}</a></td>
{% match build.2 %} {% when Some with (build) %}
<td class="build-cell">
<a class="build-info-a" href="{{ build.link() }}">
<span> {{ build.status.to_emoji() }} </span>
</a>
</td>
{% when None %}
<td class="missing"></td>
{% endmatch %}
</tr>
{% endfor %}
</table>
<footer class="footer">
<a href="https://github.com/Noratrieb/does-it-build">
does-it-build {{version}}
</a>
</footer>
</body>
</html>