mirror of
https://github.com/mudler/luet.git
synced 2025-09-09 02:59:30 +00:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
71d5b03382 | ||
|
a02ab16510 |
@@ -30,7 +30,7 @@ var cfgFile string
|
|||||||
var Verbose bool
|
var Verbose bool
|
||||||
|
|
||||||
const (
|
const (
|
||||||
LuetCLIVersion = "0.20.11"
|
LuetCLIVersion = "0.20.12"
|
||||||
LuetEnvPrefix = "LUET"
|
LuetEnvPrefix = "LUET"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -239,19 +239,6 @@ func (cs *LuetCompiler) unpackFs(concurrency int, keepPermissions bool, p *compi
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// artifact.ImageToArtifact(
|
|
||||||
// cs.Options.Context,
|
|
||||||
// img,
|
|
||||||
// cs.Options.CompressionType,
|
|
||||||
// p.Rel(p.GetPackage().GetFingerPrint()+".package.tar"),
|
|
||||||
// image.ExtractFiles(
|
|
||||||
// cs.Options.Context,
|
|
||||||
// strings.TrimLeft(p.GetPackageDir(), "/"),
|
|
||||||
// p.GetIncludes(),
|
|
||||||
// p.GetExcludes(),
|
|
||||||
// ),
|
|
||||||
// )
|
|
||||||
// TODO: Trim includes/excludes from "/" ?
|
|
||||||
_, rootfs, err := image.Extract(
|
_, rootfs, err := image.Extract(
|
||||||
cs.Options.Context,
|
cs.Options.Context,
|
||||||
img,
|
img,
|
||||||
@@ -1090,7 +1077,31 @@ func (cs *LuetCompiler) compile(concurrency int, keepPermissions bool, generateF
|
|||||||
|
|
||||||
ht := NewHashTree(cs.Database)
|
ht := NewHashTree(cs.Database)
|
||||||
|
|
||||||
packageHashTree, err := ht.Query(cs, p)
|
// When computing the hash tree, we need to take into consideration
|
||||||
|
// that packages that require final images have to be seen as packages without deps
|
||||||
|
// This is because we don't really want to calculate the deptree of them as
|
||||||
|
// as it is handled already when we are creating the images in resolveFinalImages().
|
||||||
|
c := *cs
|
||||||
|
copy := &c
|
||||||
|
memDB := pkg.NewInMemoryDatabase(false)
|
||||||
|
// Create a copy to avoid races
|
||||||
|
dbCopy := pkg.NewInMemoryDatabase(false)
|
||||||
|
err := cs.Database.Clone(dbCopy)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed cloning db")
|
||||||
|
}
|
||||||
|
for _, p := range dbCopy.World() {
|
||||||
|
copy := p.Clone()
|
||||||
|
spec, _ := cs.FromPackage(p)
|
||||||
|
if spec.RequiresFinalImages {
|
||||||
|
copy.Requires([]*pkg.DefaultPackage{})
|
||||||
|
}
|
||||||
|
|
||||||
|
memDB.CreatePackage(copy)
|
||||||
|
}
|
||||||
|
copy.Database = memDB
|
||||||
|
|
||||||
|
packageHashTree, err := ht.Query(copy, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed querying hashtree")
|
return nil, errors.Wrap(err, "failed querying hashtree")
|
||||||
}
|
}
|
||||||
@@ -1148,6 +1159,7 @@ func (cs *LuetCompiler) compile(concurrency int, keepPermissions bool, generateF
|
|||||||
buildTarget := !cs.Options.OnlyDeps
|
buildTarget := !cs.Options.OnlyDeps
|
||||||
|
|
||||||
if buildDeps {
|
if buildDeps {
|
||||||
|
|
||||||
cs.Options.Context.Info(":deciduous_tree: Build dependencies for " + p.GetPackage().HumanReadableString())
|
cs.Options.Context.Info(":deciduous_tree: Build dependencies for " + p.GetPackage().HumanReadableString())
|
||||||
for _, assertion := range dependencies { //highly dependent on the order
|
for _, assertion := range dependencies { //highly dependent on the order
|
||||||
depsN++
|
depsN++
|
||||||
@@ -1163,6 +1175,7 @@ func (cs *LuetCompiler) compile(concurrency int, keepPermissions bool, generateF
|
|||||||
return nil, errors.Wrap(err, "Error while generating compilespec for "+assertion.Package.GetName())
|
return nil, errors.Wrap(err, "Error while generating compilespec for "+assertion.Package.GetName())
|
||||||
}
|
}
|
||||||
compileSpec.BuildOptions.PullImageRepository = append(compileSpec.BuildOptions.PullImageRepository, p.BuildOptions.PullImageRepository...)
|
compileSpec.BuildOptions.PullImageRepository = append(compileSpec.BuildOptions.PullImageRepository, p.BuildOptions.PullImageRepository...)
|
||||||
|
|
||||||
cs.Options.Context.Debug("PullImage repos:", compileSpec.BuildOptions.PullImageRepository)
|
cs.Options.Context.Debug("PullImage repos:", compileSpec.BuildOptions.PullImageRepository)
|
||||||
|
|
||||||
compileSpec.SetOutputPath(p.GetOutputPath())
|
compileSpec.SetOutputPath(p.GetOutputPath())
|
||||||
|
@@ -174,6 +174,7 @@ func (r *CompilerRecipe) Load(path string) error {
|
|||||||
filepath.Dir(currentpath))
|
filepath.Dir(currentpath))
|
||||||
}
|
}
|
||||||
pack.Requires(packbuild.GetRequires())
|
pack.Requires(packbuild.GetRequires())
|
||||||
|
|
||||||
pack.Conflicts(packbuild.GetConflicts())
|
pack.Conflicts(packbuild.GetConflicts())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
tests/fixtures/join_complex/c/c1/build.yaml
vendored
4
tests/fixtures/join_complex/c/c1/build.yaml
vendored
@@ -7,3 +7,7 @@ requires:
|
|||||||
version: ">=0"
|
version: ">=0"
|
||||||
|
|
||||||
requires_final_images: true
|
requires_final_images: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- |
|
||||||
|
/bin/sh -c "if [ -e /usr/bin/generate.sh ]; then ls -liah /usr/bin && exit 1; fi"
|
@@ -6,6 +6,7 @@ requires:
|
|||||||
prelude:
|
prelude:
|
||||||
- echo foo > /test
|
- echo foo > /test
|
||||||
- echo bar > /test2
|
- echo bar > /test2
|
||||||
|
- cp -rf generate.sh /usr/bin/
|
||||||
steps:
|
steps:
|
||||||
- echo artifact5 > /newc
|
- echo artifact5 > /newc
|
||||||
- echo artifact6 > /newnewc
|
- echo artifact6 > /newnewc
|
||||||
|
Reference in New Issue
Block a user