diff --git a/pkg/compiler/compiler.go b/pkg/compiler/compiler.go index ad059f24..c8464a1c 100644 --- a/pkg/compiler/compiler.go +++ b/pkg/compiler/compiler.go @@ -80,8 +80,8 @@ func (cs *LuetCompiler) compilerWorker(i int, wg *sync.WaitGroup, cspecs chan Co } } -func (cs *LuetCompiler) CompileWithReverseDeps(concurrency int, keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) { - artifacts, err := cs.CompileParallel(concurrency, keepPermissions, ps) +func (cs *LuetCompiler) CompileWithReverseDeps(keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) { + artifacts, err := cs.CompileParallel(keepPermissions, ps) if len(err) != 0 { return artifacts, err } @@ -129,11 +129,11 @@ func (cs *LuetCompiler) CompileWithReverseDeps(concurrency int, keepPermissions Info(" :arrow_right_hook:", u.GetPackage().GetName(), ":leaves:", u.GetPackage().GetVersion(), "(", u.GetPackage().GetCategory(), ")") } - artifacts2, err := cs.CompileParallel(concurrency, keepPermissions, uniques) + artifacts2, err := cs.CompileParallel(keepPermissions, uniques) return append(artifacts, artifacts2...), err } -func (cs *LuetCompiler) CompileParallel(concurrency int, keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) { +func (cs *LuetCompiler) CompileParallel(keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) { Spinner(22) defer SpinnerStop() all := make(chan CompilationSpec) @@ -141,9 +141,9 @@ func (cs *LuetCompiler) CompileParallel(concurrency int, keepPermissions bool, p mutex := &sync.Mutex{} errors := make(chan error, ps.Len()) var wg = new(sync.WaitGroup) - for i := 0; i < concurrency; i++ { + for i := 0; i < cs.Concurrency; i++ { wg.Add(1) - go cs.compilerWorker(i, wg, all, &artifacts, mutex, concurrency, keepPermissions, errors) + go cs.compilerWorker(i, wg, all, &artifacts, mutex, cs.Concurrency, keepPermissions, errors) } for _, p := range ps.All() { @@ -472,13 +472,13 @@ func (cs *LuetCompiler) ComputeDepTree(p CompilationSpec) (solver.PackagesAssert } // Compile is non-parallel -func (cs *LuetCompiler) Compile(concurrency int, keepPermissions bool, p CompilationSpec) (Artifact, error) { +func (cs *LuetCompiler) Compile(keepPermissions bool, p CompilationSpec) (Artifact, error) { asserts, err := cs.ComputeDepTree(p) if err != nil { panic(err) } p.SetSourceAssertion(asserts) - return cs.compile(concurrency, keepPermissions, p) + return cs.compile(cs.Concurrency, keepPermissions, p) } func (cs *LuetCompiler) compile(concurrency int, keepPermissions bool, p CompilationSpec) (Artifact, error) { diff --git a/pkg/compiler/compiler_test.go b/pkg/compiler/compiler_test.go index edabd321..d2dbf0e0 100644 --- a/pkg/compiler/compiler_test.go +++ b/pkg/compiler/compiler_test.go @@ -53,7 +53,9 @@ var _ = Describe("Compiler", func() { Expect(spec.GetPreBuildSteps()).To(Equal([]string{"echo foo > /test", "echo bar > /test2", "chmod +x generate.sh"})) spec.SetOutputPath(tmpdir) - artifact, err := compiler.Compile(2, false, spec) + compiler.SetConcurrency(2) + + artifact, err := compiler.Compile(false, spec) Expect(err).ToNot(HaveOccurred()) Expect(helpers.Exists(artifact.GetPath())).To(BeTrue()) Expect(helpers.Untar(artifact.GetPath(), tmpdir, false)).ToNot(HaveOccurred()) @@ -95,7 +97,8 @@ var _ = Describe("Compiler", func() { spec.SetOutputPath(tmpdir) spec2.SetOutputPath(tmpdir) - artifacts, errs := compiler.CompileParallel(2, false, NewLuetCompilationspecs(spec, spec2)) + compiler.SetConcurrency(2) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec, spec2)) Expect(errs).To(BeNil()) for _, artifact := range artifacts { Expect(helpers.Exists(artifact.GetPath())).To(BeTrue()) @@ -134,8 +137,9 @@ var _ = Describe("Compiler", func() { spec.SetOutputPath(tmpdir) spec2.SetOutputPath(tmpdir) spec3.SetOutputPath(tmpdir) + compiler.SetConcurrency(2) - artifacts, errs := compiler.CompileParallel(2, false, NewLuetCompilationspecs(spec, spec2, spec3)) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec, spec2, spec3)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(3)) @@ -181,12 +185,12 @@ var _ = Describe("Compiler", func() { Expect(err).ToNot(HaveOccurred()) spec.SetOutputPath(tmpdir) spec2.SetOutputPath(tmpdir) - - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + compiler.SetConcurrency(1) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) - artifacts2, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec2)) + artifacts2, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec2)) Expect(errs).To(BeNil()) Expect(len(artifacts2)).To(Equal(1)) @@ -224,8 +228,9 @@ var _ = Describe("Compiler", func() { // Expect(err).ToNot(HaveOccurred()) spec.SetOutputPath(tmpdir) + compiler.SetConcurrency(1) - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) @@ -258,8 +263,8 @@ var _ = Describe("Compiler", func() { // Expect(err).ToNot(HaveOccurred()) spec.SetOutputPath(tmpdir) - - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + compiler.SetConcurrency(1) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) @@ -296,8 +301,9 @@ var _ = Describe("Compiler", func() { // Expect(err).ToNot(HaveOccurred()) spec.SetOutputPath(tmpdir) + compiler.SetConcurrency(1) - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) @@ -336,8 +342,9 @@ var _ = Describe("Compiler", func() { // Expect(err).ToNot(HaveOccurred()) spec.SetOutputPath(tmpdir) + compiler.SetConcurrency(1) - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) Expect(len(artifacts[0].GetDependencies())).To(Equal(1)) @@ -379,8 +386,9 @@ var _ = Describe("Compiler", func() { // Expect(err).ToNot(HaveOccurred()) spec.SetOutputPath(tmpdir) + compiler.SetConcurrency(1) - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) Expect(len(artifacts[0].GetDependencies())).To(Equal(1)) @@ -421,7 +429,7 @@ var _ = Describe("Compiler", func() { spec.SetOutputPath(tmpdir) - artifacts, errs := compiler.CompileWithReverseDeps(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileWithReverseDeps(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(2)) @@ -459,7 +467,7 @@ var _ = Describe("Compiler", func() { spec.SetOutputPath(tmpdir) - artifacts, errs := compiler.CompileParallel(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) Expect(len(artifacts[0].GetDependencies())).To(Equal(6)) @@ -494,7 +502,7 @@ var _ = Describe("Compiler", func() { spec.SetOutputPath(tmpdir) - artifacts, errs := compiler.CompileWithReverseDeps(1, false, NewLuetCompilationspecs(spec)) + artifacts, errs := compiler.CompileWithReverseDeps(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(4)) @@ -552,7 +560,9 @@ var _ = Describe("Compiler", func() { defer os.RemoveAll(tmpdir) // clean up spec.SetOutputPath(tmpdir) - artifacts, errs := compiler.CompileParallel(2, false, NewLuetCompilationspecs(spec)) + compiler.SetConcurrency(2) + + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) for _, artifact := range artifacts { Expect(helpers.Exists(artifact.GetPath())).To(BeTrue()) @@ -593,7 +603,9 @@ var _ = Describe("Compiler", func() { defer os.RemoveAll(tmpdir) // clean up spec.SetOutputPath(tmpdir) - artifacts, errs := compiler.CompileParallel(2, false, NewLuetCompilationspecs(spec)) + compiler.SetConcurrency(1) + + artifacts, errs := compiler.CompileParallel(false, NewLuetCompilationspecs(spec)) Expect(errs).To(BeNil()) Expect(len(artifacts)).To(Equal(1)) Expect(len(artifacts[0].GetDependencies())).To(Equal(1)) diff --git a/pkg/compiler/interface.go b/pkg/compiler/interface.go index b4d8b34f..259f427d 100644 --- a/pkg/compiler/interface.go +++ b/pkg/compiler/interface.go @@ -21,9 +21,9 @@ import ( ) type Compiler interface { - Compile(int, bool, CompilationSpec) (Artifact, error) - CompileParallel(concurrency int, keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) - CompileWithReverseDeps(concurrency int, keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) + Compile(bool, CompilationSpec) (Artifact, error) + CompileParallel(keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) + CompileWithReverseDeps(keepPermissions bool, ps CompilationSpecs) ([]Artifact, []error) ComputeDepTree(p CompilationSpec) (solver.PackagesAssertions, error) SetConcurrency(i int) FromPackage(pkg.Package) (CompilationSpec, error) diff --git a/pkg/installer/installer_test.go b/pkg/installer/installer_test.go index 16a6e8cc..5e124260 100644 --- a/pkg/installer/installer_test.go +++ b/pkg/installer/installer_test.go @@ -62,7 +62,9 @@ var _ = Describe("Installer", func() { Expect(spec.GetPreBuildSteps()).To(Equal([]string{"echo foo > /test", "echo bar > /test2", "chmod +x generate.sh"})) spec.SetOutputPath(tmpdir) - artifact, err := compiler.Compile(2, false, spec) + compiler.SetConcurrency(2) + + artifact, err := compiler.Compile(false, spec) Expect(err).ToNot(HaveOccurred()) Expect(helpers.Exists(artifact.GetPath())).To(BeTrue()) Expect(helpers.Untar(artifact.GetPath(), tmpdir, false)).ToNot(HaveOccurred()) @@ -172,7 +174,9 @@ uri: "`+tmpdir+`" Expect(spec.GetPreBuildSteps()).To(Equal([]string{"echo foo > /test", "echo bar > /test2", "chmod +x generate.sh"})) spec.SetOutputPath(tmpdir) - artifact, err := compiler.Compile(2, false, spec) + compiler.SetConcurrency(2) + + artifact, err := compiler.Compile(false, spec) Expect(err).ToNot(HaveOccurred()) Expect(helpers.Exists(artifact.GetPath())).To(BeTrue()) Expect(helpers.Untar(artifact.GetPath(), tmpdir, false)).ToNot(HaveOccurred()) @@ -291,7 +295,9 @@ uri: "`+tmpdir+`" spec.SetOutputPath(tmpdir) spec2.SetOutputPath(tmpdir) spec3.SetOutputPath(tmpdir) - _, errs := c.CompileParallel(2, false, compiler.NewLuetCompilationspecs(spec, spec2, spec3)) + c.SetConcurrency(2) + + _, errs := c.CompileParallel(false, compiler.NewLuetCompilationspecs(spec, spec2, spec3)) Expect(errs).To(BeEmpty()) diff --git a/pkg/installer/repository_test.go b/pkg/installer/repository_test.go index 52e65f7c..e0285338 100644 --- a/pkg/installer/repository_test.go +++ b/pkg/installer/repository_test.go @@ -61,7 +61,9 @@ var _ = Describe("Repository", func() { Expect(spec.GetPreBuildSteps()).To(Equal([]string{"echo foo > /test", "echo bar > /test2", "chmod +x generate.sh"})) spec.SetOutputPath(tmpdir) - artifact, err := compiler.Compile(2, false, spec) + compiler.SetConcurrency(1) + + artifact, err := compiler.Compile(false, spec) Expect(err).ToNot(HaveOccurred()) Expect(helpers.Exists(artifact.GetPath())).To(BeTrue()) Expect(helpers.Untar(artifact.GetPath(), tmpdir, false)).ToNot(HaveOccurred())