pub fn is_per_task(dockerfile: &str) -> bool {
dockerfile.lines().any(|line| {
let t = line.trim_start();
t.starts_with("LABEL ") && t.contains(r#"eval.benchmark.env="per-task""#)
})
}
pub fn is_per_task_by_name(name: &str) -> bool {
std::fs::read_to_string(format!("benchmarks/{name}/Dockerfile"))
.as_deref()
.map(is_per_task)
.unwrap_or(false)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn is_per_task_keys_off_the_label() {
assert!(is_per_task(
"FROM scratch\nLABEL eval.benchmark.env=\"per-task\"\n"
));
assert!(!is_per_task(
"FROM scratch\nLABEL eval.benchmark.env=\"shared\"\n"
));
assert!(!is_per_task("ARG EVAL_TASK_ID\nFROM x-${EVAL_TASK_ID}\n"));
assert!(!is_per_task("# eval.benchmark.env=\"per-task\"\nFROM x\n"));
}
}