diff --git a/cmd/build.go b/cmd/build.go index 0cfd6c23..4408284c 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -79,6 +79,7 @@ var buildCmd = &cobra.Command{ onlydeps := viper.GetBool("onlydeps") keepExportedImages := viper.GetBool("keep-exported-images") full, _ := cmd.Flags().GetBool("full") + skip, _ := cmd.Flags().GetBool("skip-if-metadata-exists") compilerSpecs := compiler.NewLuetCompilationspecs() var compilerBackend compiler.CompilerBackend @@ -143,6 +144,7 @@ var buildCmd = &cobra.Command{ opts.OnlyDeps = onlydeps opts.NoDeps = nodeps opts.KeepImageExport = keepExportedImages + opts.SkipIfMetadataExists = skip luetCompiler := compiler.NewLuetCompiler(compilerBackend, generalRecipe.GetDatabase(), opts) luetCompiler.SetConcurrency(concurrency) @@ -231,6 +233,7 @@ func init() { buildCmd.Flags().Bool("nodeps", false, "Build only the target packages, skipping deps (it works only if you already built the deps locally, or by using --pull) ") buildCmd.Flags().Bool("onlydeps", false, "Build only package dependencies") buildCmd.Flags().Bool("keep-exported-images", false, "Keep exported images used during building") + buildCmd.Flags().Bool("skip-if-metadata-exists", false, "Skip package if metadata exists") buildCmd.Flags().String("solver-type", "", "Solver strategy") buildCmd.Flags().Float32("solver-rate", 0.7, "Solver learning rate") diff --git a/pkg/compiler/compiler.go b/pkg/compiler/compiler.go index e1eef898..73818111 100644 --- a/pkg/compiler/compiler.go +++ b/pkg/compiler/compiler.go @@ -256,7 +256,7 @@ func (cs *LuetCompiler) compileWithImage(image, buildertaggedImage, packageImage if !cs.Clean { exists := cs.Backend.ImageExists(buildertaggedImage) && cs.Backend.ImageExists(packageImage) - if art, err := LoadArtifactFromYaml(p); err == nil && exists { + if art, err := LoadArtifactFromYaml(p); err == nil && (cs.Options.SkipIfMetadataExists || exists) { Debug("Artifact reloaded. Skipping build") return art, err } diff --git a/pkg/compiler/interface.go b/pkg/compiler/interface.go index 4c5f3b52..73ae4a03 100644 --- a/pkg/compiler/interface.go +++ b/pkg/compiler/interface.go @@ -52,9 +52,10 @@ type CompilerOptions struct { Clean bool KeepImageExport bool - OnlyDeps bool - NoDeps bool - SolverOptions config.LuetSolverOptions + OnlyDeps bool + NoDeps bool + SolverOptions config.LuetSolverOptions + SkipIfMetadataExists bool } func NewDefaultCompilerOptions() *CompilerOptions {