Skip to content

Commit

Permalink
don't limit the rustc version we rebuild up to
Browse files Browse the repository at this point in the history
After the first rebuild is finished I think we can do "continious
rebuilds" now.
  • Loading branch information
syphar committed Feb 28, 2025
1 parent 25e199d commit 4186eea
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 90 deletions.

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 2 additions & 45 deletions src/build_queue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -693,11 +693,6 @@ pub async fn queue_rebuilds(
SELECT
c.name,
r.version,
(
SELECT MAX(b.rustc_nightly_date)
FROM builds AS b
WHERE b.rid = r.id AND b.rustc_nightly_date IS NOT NULL
) AS rustc_nightly_date,
(
SELECT MAX(COALESCE(b.build_finished, b.build_started))
FROM builds AS b
Expand All @@ -709,12 +704,8 @@ pub async fn queue_rebuilds(
WHERE
r.rustdoc_status = TRUE
) as i
WHERE i.rustc_nightly_date < $1
ORDER BY i.last_build_attempt ASC
LIMIT $2",
config
.rebuild_up_to_date
.expect("config.rebuild_up_to_date not set"),
LIMIT $1",
rebuilds_to_queue,
)
.fetch(&mut *conn);
Expand All @@ -741,46 +732,14 @@ mod tests {
use crate::test::FakeBuild;

use super::*;
use chrono::{NaiveDate, Utc};
use chrono::Utc;
use std::time::Duration;

#[test]
fn test_dont_rebuild_when_new() {
crate::test::async_wrapper(|env| async move {
env.override_config(|config| {
config.max_queued_rebuilds = Some(100);
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2020, 1, 1).unwrap());
});

env.fake_release()
.await
.name("foo")
.version("0.1.0")
.builds(vec![
FakeBuild::default()
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)"),
])
.create()
.await?;

let build_queue = env.async_build_queue().await;
assert!(build_queue.queued_crates().await?.is_empty());

let mut conn = env.async_db().await.async_conn().await;
queue_rebuilds(&mut conn, &env.config(), &build_queue).await?;

assert!(build_queue.queued_crates().await?.is_empty());

Ok(())
})
}

#[test]
fn test_rebuild_when_old() {
crate::test::async_wrapper(|env| async move {
env.override_config(|config| {
config.max_queued_rebuilds = Some(100);
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2024, 1, 1).unwrap());
});

env.fake_release()
Expand Down Expand Up @@ -815,7 +774,6 @@ mod tests {
crate::test::async_wrapper(|env| async move {
env.override_config(|config| {
config.max_queued_rebuilds = Some(1);
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2024, 1, 1).unwrap());
});

let build_queue = env.async_build_queue().await;
Expand Down Expand Up @@ -858,7 +816,6 @@ mod tests {
crate::test::async_wrapper(|env| async move {
env.override_config(|config| {
config.max_queued_rebuilds = Some(1);
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2024, 1, 1).unwrap());
});

let build_queue = env.async_build_queue().await;
Expand Down
3 changes: 0 additions & 3 deletions src/config.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use crate::{cdn::CdnKind, storage::StorageKind};
use anyhow::{Context, Result, anyhow, bail};
use chrono::NaiveDate;
use std::{env::VarError, error::Error, path::PathBuf, str::FromStr, time::Duration};
use tracing::trace;
use url::Url;
Expand Down Expand Up @@ -120,7 +119,6 @@ pub struct Config {

// automatic rebuild configuration
pub(crate) max_queued_rebuilds: Option<u16>,
pub(crate) rebuild_up_to_date: Option<NaiveDate>,
}

impl Config {
Expand Down Expand Up @@ -243,7 +241,6 @@ impl Config {
86400,
)?),
max_queued_rebuilds: maybe_env("DOCSRS_MAX_QUEUED_REBUILDS")?,
rebuild_up_to_date: maybe_env("DOCSRS_REBUILD_UP_TO_DATE")?,
})
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/utils/daemon.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ pub fn start_background_queue_rebuild<C: Context>(context: &C) -> Result<(), Err
let config = context.config()?;
let build_queue = runtime.block_on(context.async_build_queue())?;

if config.max_queued_rebuilds.is_none() || config.rebuild_up_to_date.is_none() {
if config.max_queued_rebuilds.is_none() {
info!("rebuild config incomplete, skipping rebuild queueing");
return Ok(());
}
Expand Down

0 comments on commit 4186eea

Please sign in to comment.