) -> impl IntoResponse {
+ state.db.full_mega_monster().await.map(Json).map_err(|err| {
error!(?err, "Error loading target state");
StatusCode::INTERNAL_SERVER_ERROR
})
@@ -117,3 +218,21 @@ async fn trigger_build(
//
// StatusCode::ACCEPTED
}
+
+impl Status {
+ fn to_emoji(&self) -> &'static str {
+ match self {
+ Status::Pass => "✅",
+ Status::Error => "❌",
+ }
+ }
+}
+
+impl BuildInfo {
+ fn link(&self) -> String {
+ format!(
+ "build?nightly={}&target={}&mode={}",
+ self.nightly, self.target, self.mode
+ )
+ }
+}
diff --git a/static/build.html b/static/build.html
index cfdfa64..31af71d 100644
--- a/static/build.html
+++ b/static/build.html
@@ -12,8 +12,7 @@
- Build results for nightly-{{nightly}} target-{{target}} {{mode}}
- Back
+ Build results for nightly-{{nightly}} target {{target}} {{mode}}
{{status}}
diff --git a/static/index.html b/static/full-table.html
similarity index 100%
rename from static/index.html
rename to static/full-table.html
diff --git a/static/index.css b/static/index.css
index a4201f3..876e7ed 100644
--- a/static/index.css
+++ b/static/index.css
@@ -24,14 +24,16 @@ td {
writing-mode: sideways-lr;
}
+.build-cell {
+ font-size: 2rem;
+}
+
.build-info-a {
color: black;
text-decoration: none;
-}
-
-.build-cell {
- padding-left: 5px;
- padding-right: 5px;
+ height: 100%;
+ width: 100%;
+ padding: 5px;
}
.target-name-col {
diff --git a/static/index.js b/static/index.js
index 140551c..0828dfc 100644
--- a/static/index.js
+++ b/static/index.js
@@ -143,7 +143,7 @@ const miriTable = new Table(
);
function fetchTargets() {
- fetch("target-state")
+ fetch("full-mega-monster")
.then((body) => body.json())
.then((body) => {
const core = body.filter((info) => info.mode === "core");
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..4177386
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+ Does it build?
+
+
+
+
+ Does it build?
+
+ This website builds every rustc target on many nightlies to check which
+ ones work and which ones do not.
+
+
+ You can select a target from the list below and check its history.
+
+ If that is not what you want, you can visit the
+ full table to see
+ all information at once (which will really stress test
+ your browser).
+
+
+
+ {% for target in targets %}
+
+ {{ target }}
+
+ {% endfor %}
+
+
+
+
+
+
diff --git a/templates/target.html b/templates/target.html
new file mode 100644
index 0000000..5c2135e
--- /dev/null
+++ b/templates/target.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+ {{target}} build history
+
+
+
+
+ Target build history for {{target}}
+ Back
+
+ {{status}}
+
+
+ This contains the history of this target. Core is built with
+ cargo build --release -Zbuild-std=core. This checks that
+ codegen/linking of core works, but does not check whether std builds.
+
+
+ std is being built with cargo miri setup. If a target does
+ not support std, the std column represents core/alloc. This checks that
+ std builds (on targets that have it) but does not check whether
+ codegen/linking works.
+
+
+
+ nightly
+ core
+ std
+
+ {% for build in builds %}
+
+ {{ build.0 }}
+ {% match build.1 %} {% when Some with (build) %}
+
+
+ {{ build.status.to_emoji() }}
+
+
+ {% when None %}
+
+ {% endmatch %} {% match build.2 %} {% when Some with (build) %}
+
+
+ {{ build.status.to_emoji() }}
+
+
+ {% when None %}
+
+ {% endmatch %}
+
+ {% endfor %}
+
+
+
+