Merge pull request #414 from NixOS/build-all

acl: all users can build on x86-64 linux and aarch64 linux =)
This commit is contained in:
Graham Christensen 2019-11-02 18:40:44 +01:00 committed by GitHub
commit ce5f77632a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 26 deletions

View file

@ -36,10 +36,9 @@ impl ACL {
System::X8664Linux, System::X8664Linux,
System::Aarch64Linux, System::Aarch64Linux,
] ]
} else if self.can_build_restricted(user, repo) {
vec![System::X8664Linux, System::Aarch64Linux]
} else { } else {
vec![] // allow everybody to issue aarch64-linux and x8664-linux builds
vec![System::X8664Linux, System::Aarch64Linux]
} }
} }

View file

@ -244,5 +244,4 @@ baz",
parse("@ofborg build foo bar baz.Baz") parse("@ofborg build foo bar baz.Baz")
); );
} }
} }

View file

@ -11,7 +11,7 @@ pub struct NotifyWorker<T: SimpleNotifyWorker> {
pub trait SimpleNotifyWorker { pub trait SimpleNotifyWorker {
type J; type J;
fn consumer(&self, job: &Self::J, notifier: &mut NotificationReceiver); fn consumer(&self, job: &Self::J, notifier: &mut dyn NotificationReceiver);
fn msg_to_job( fn msg_to_job(
&self, &self,

View file

@ -110,7 +110,7 @@ type Package = String;
type Architecture = String; type Architecture = String;
type OutPath = String; type OutPath = String;
pub fn parse_lines(data: &mut BufRead) -> PackageOutPaths { pub fn parse_lines(data: &mut dyn BufRead) -> PackageOutPaths {
data.lines() data.lines()
.filter_map(|line| match line { .filter_map(|line| match line {
Ok(line) => Some(line), Ok(line) => Some(line),
@ -191,5 +191,4 @@ gnome3.evolution_data_server.aarch64-linux /nix/
); );
assert_eq!(parse_lines(&mut Cursor::new(TEST_LINES)), expect); assert_eq!(parse_lines(&mut Cursor::new(TEST_LINES)), expect);
} }
} }

View file

@ -5,15 +5,17 @@ pub enum System {
X8664Darwin, X8664Darwin,
} }
impl System { impl std::fmt::Display for System {
pub fn to_string(&self) -> String { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self { match self {
System::X8664Linux => String::from("x86_64-linux"), System::X8664Linux => write!(f, "x86_64-linux"),
System::Aarch64Linux => String::from("aarch64-linux"), System::Aarch64Linux => write!(f, "aarch64-linux"),
System::X8664Darwin => String::from("x86_64-darwin"), System::X8664Darwin => write!(f, "x86_64-darwin"),
} }
} }
}
impl System {
pub fn as_build_destination(&self) -> (Option<String>, Option<String>) { pub fn as_build_destination(&self) -> (Option<String>, Option<String>) {
(None, Some(format!("build-inputs-{}", self.to_string()))) (None, Some(format!("build-inputs-{}", self.to_string())))
} }

View file

@ -340,15 +340,6 @@ mod tests {
PackageArchSrc { linux, darwin: 0 } PackageArchSrc { linux, darwin: 0 }
} }
pub fn darwin(darwin: usize) -> PackageArchSrc {
PackageArchSrc::linux(0).and_darwin(darwin)
}
pub fn and_linux(mut self, linux: usize) -> PackageArchSrc {
self.linux = linux;
self
}
pub fn and_darwin(mut self, darwin: usize) -> PackageArchSrc { pub fn and_darwin(mut self, darwin: usize) -> PackageArchSrc {
self.darwin = darwin; self.darwin = darwin;
self self

View file

@ -41,7 +41,7 @@ impl BuildWorker {
fn actions<'a, 'b>( fn actions<'a, 'b>(
&self, &self,
job: &'b buildjob::BuildJob, job: &'b buildjob::BuildJob,
receiver: &'a mut notifyworker::NotificationReceiver, receiver: &'a mut dyn notifyworker::NotificationReceiver,
) -> JobActions<'a, 'b> { ) -> JobActions<'a, 'b> {
JobActions::new(&self.system, &self.identity, job, receiver) JobActions::new(&self.system, &self.identity, job, receiver)
} }
@ -50,7 +50,7 @@ impl BuildWorker {
pub struct JobActions<'a, 'b> { pub struct JobActions<'a, 'b> {
system: String, system: String,
identity: String, identity: String,
receiver: &'a mut notifyworker::NotificationReceiver, receiver: &'a mut dyn notifyworker::NotificationReceiver,
job: &'b buildjob::BuildJob, job: &'b buildjob::BuildJob,
line_counter: u64, line_counter: u64,
snippet_log: VecDeque<String>, snippet_log: VecDeque<String>,
@ -66,7 +66,7 @@ impl<'a, 'b> JobActions<'a, 'b> {
system: &str, system: &str,
identity: &str, identity: &str,
job: &'b buildjob::BuildJob, job: &'b buildjob::BuildJob,
receiver: &'a mut notifyworker::NotificationReceiver, receiver: &'a mut dyn notifyworker::NotificationReceiver,
) -> JobActions<'a, 'b> { ) -> JobActions<'a, 'b> {
let (log_exchange, log_routing_key) = job let (log_exchange, log_routing_key) = job
.logs .logs
@ -279,7 +279,7 @@ impl notifyworker::SimpleNotifyWorker for BuildWorker {
fn consumer( fn consumer(
&self, &self,
job: &buildjob::BuildJob, job: &buildjob::BuildJob,
notifier: &mut notifyworker::NotificationReceiver, notifier: &mut dyn notifyworker::NotificationReceiver,
) { ) {
let mut actions = self.actions(&job, notifier); let mut actions = self.actions(&job, notifier);

View file

@ -156,7 +156,7 @@ impl<E: stats::SysEvents + 'static> worker::SimpleWorker for EvaluationWorker<E>
} }
}; };
let mut evaluation_strategy: Box<eval::EvaluationStrategy> = if job.is_nixpkgs() { let mut evaluation_strategy: Box<dyn eval::EvaluationStrategy> = if job.is_nixpkgs() {
Box::new(eval::NixpkgsStrategy::new( Box::new(eval::NixpkgsStrategy::new(
&job, &job,
&pull, &pull,