diff --git a/.gitignore b/.gitignore
index 54e7505..173b3ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
/target
/targets
/results
-/db.sqlite*
+/db.sqlite
diff --git a/build.rs b/build.rs
index ba68507..232ad4d 100644
--- a/build.rs
+++ b/build.rs
@@ -31,10 +31,6 @@ fn try_get_commit() -> color_eyre::Result {
}
fn has_no_changes() -> color_eyre::Result {
- if std::env::var("DOES_IT_BUILD_OVERRIDE_VERSION").is_ok() {
- return Ok(true);
- }
-
Ok(std::process::Command::new("git")
.args(["diff", "--no-ext-diff", "--quiet", "--exit-code"])
.output()?
diff --git a/migrations/20250704160556_reset-missing-target-cpu.sql b/migrations/20250704160556_reset-missing-target-cpu.sql
deleted file mode 100644
index 76d96a5..0000000
--- a/migrations/20250704160556_reset-missing-target-cpu.sql
+++ /dev/null
@@ -1,8 +0,0 @@
--- Add migration script here
-
-ALTER TABLE build_info
- ADD COLUMN rustflags VARCHAR;
-
-DELETE FROM build_info WHERE target IN ('avr-none', 'amdgcn-amd-amdhsa') AND mode = 'core';
-
-DELETE FROM finished_nightly WHERE nightly > '2025-02-11';
diff --git a/src/build.rs b/src/build.rs
index e2d35f2..32fa1e1 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -15,25 +15,9 @@ use tracing::{debug, error, info};
use crate::{
db::{BuildMode, Db, FullBuildInfo, Status},
- nightlies::Nightlies,
+ nightlies::{Nightlies, NightlyCache},
};
-struct CustomBuildFlags {
- target: &'static str,
- flags: &'static [&'static str],
-}
-
-const CUSTOM_CORE_FLAGS: &[CustomBuildFlags] = &[
- CustomBuildFlags {
- target: "avr-none",
- flags: &["-Ctarget-cpu=atmega328p"],
- },
- CustomBuildFlags {
- target: "amdgcn-amd-amdhsa",
- flags: &["-Ctarget-cpu=gfx1100"],
- },
-];
-
pub struct Toolchain(String);
impl Toolchain {
pub fn from_nightly(nightly: &str) -> Self {
@@ -52,15 +36,18 @@ impl Display for Toolchain {
}
pub async fn background_builder(db: Db) -> Result<()> {
+ let mut nightly_cache = NightlyCache::default();
loop {
- if let Err(err) = background_builder_inner(&db).await {
+ if let Err(err) = background_builder_inner(&db, &mut nightly_cache).await {
error!("error in background builder: {err}");
}
}
}
-async fn background_builder_inner(db: &Db) -> Result<()> {
- let nightlies = Nightlies::fetch().await.wrap_err("fetching nightlies")?;
+async fn background_builder_inner(db: &Db, nightly_cache: &mut NightlyCache) -> Result<()> {
+ let nightlies = Nightlies::fetch(nightly_cache)
+ .await
+ .wrap_err("fetching nightlies")?;
let already_finished = db
.finished_nightlies()
.await
@@ -257,7 +244,6 @@ async fn build_single_target(db: &Db, nightly: &str, target: &str, mode: BuildMo
status: result.status,
stderr: result.stderr,
mode,
- rustflags: result.rustflags,
})
.await?;
@@ -267,7 +253,6 @@ async fn build_single_target(db: &Db, nightly: &str, target: &str, mode: BuildMo
struct BuildResult {
status: Status,
stderr: String,
- rustflags: Option,
}
/// Build a target core in a temporary directory and see whether it passes or not.
@@ -277,8 +262,6 @@ async fn build_target(
target: &str,
mode: BuildMode,
) -> Result {
- let mut rustflags = None;
-
let output = match mode {
BuildMode::Core => {
let init = Command::new("cargo")
@@ -295,22 +278,11 @@ async fn build_target(
std::fs::write(&librs, "#![no_std]\n")
.wrap_err_with(|| format!("writing to {}", librs.display()))?;
- let mut cmd = Command::new("cargo");
- cmd.arg(format!("+{toolchain}"))
+ Command::new("cargo")
+ .arg(format!("+{toolchain}"))
.args(["build", "-Zbuild-std=core", "--release"])
- .args(["--target", target]);
-
- let extra_flags = CUSTOM_CORE_FLAGS
- .iter()
- .find(|flags| flags.target == target);
-
- if let Some(extra_flags) = extra_flags {
- let flags = extra_flags.flags.join(" ");
- cmd.env("RUSTFLAGS", &flags);
- rustflags = Some(flags);
- }
-
- cmd.current_dir(tmpdir)
+ .args(["--target", target])
+ .current_dir(tmpdir)
.output()
.await
.wrap_err("spawning cargo build")?
@@ -336,9 +308,5 @@ async fn build_target(
info!("Finished build");
- Ok(BuildResult {
- status,
- stderr,
- rustflags,
- })
+ Ok(BuildResult { status, stderr })
}
diff --git a/src/db.rs b/src/db.rs
index 73aa95f..42c1811 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -48,7 +48,6 @@ pub struct FullBuildInfo {
pub status: Status,
pub stderr: String,
pub mode: BuildMode,
- pub rustflags: Option,
}
#[derive(Debug, PartialEq, Clone, Copy, sqlx::Type, Serialize, Deserialize)]
@@ -96,14 +95,13 @@ impl Db {
pub async fn insert(&self, info: FullBuildInfo) -> Result<()> {
sqlx::query(
- "INSERT INTO build_info (nightly, target, status, stderr, mode, rustflags) VALUES (?, ?, ?, ?, ?, ?);",
+ "INSERT INTO build_info (nightly, target, status, stderr, mode) VALUES (?, ?, ?, ?, ?);",
)
.bind(info.nightly)
.bind(info.target)
.bind(info.status)
.bind(info.stderr)
.bind(info.mode)
- .bind(info.rustflags)
.execute(&self.conn)
.await
.wrap_err("inserting build info into database")?;
@@ -175,7 +173,7 @@ impl Db {
mode: BuildMode,
) -> Result
- {% if showing_failures %}
-
- show all
-
- {% else %}
-
- filter failures
-
- {% endif %}
| nightly |
- core codegen |
- std check |
+ core |
+ std |
{% for build in builds %}
diff --git a/templates/target.html b/templates/target.html
index 37aafb5..af2ba20 100644
--- a/templates/target.html
+++ b/templates/target.html
@@ -1,4 +1,4 @@
-
+
@@ -13,7 +13,7 @@
Target build history for {{target}}
- Home
+ Back
{{status}}
@@ -28,20 +28,11 @@
std builds (on targets that have it) but does not check whether
codegen/linking works.
- {% if showing_failures %}
-
- show all
-
- {% else %}
-
- filter failures
-
- {% endif %}
| nightly |
- core codegen |
- std check |
+ core |
+ std |
{% for build in builds %}