mirror of
https://github.com/mudler/luet.git
synced 2025-08-16 22:37:16 +00:00
Add fixture and test for includes and layered packages
This commit is contained in:
parent
ccdca66420
commit
cd73d950cc
@ -203,5 +203,78 @@ var _ = Describe("Compiler", func() {
|
|||||||
Expect(helpers.Exists(spec.Rel("etc/hosts"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("etc/hosts"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("test1"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("test1"))).To(BeTrue())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("Compiles and includes ony wanted files", func() {
|
||||||
|
generalRecipe := tree.NewCompilerRecipe()
|
||||||
|
tmpdir, err := ioutil.TempDir("", "package")
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
defer os.RemoveAll(tmpdir) // clean up
|
||||||
|
|
||||||
|
err = generalRecipe.Load("../../tests/fixtures/include")
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
Expect(generalRecipe.Tree()).ToNot(BeNil()) // It should be populated back at this point
|
||||||
|
|
||||||
|
Expect(len(generalRecipe.Tree().GetPackageSet().GetPackages())).To(Equal(1))
|
||||||
|
|
||||||
|
compiler := NewLuetCompiler(sd.NewSimpleDockerBackend(), generalRecipe.Tree())
|
||||||
|
spec, err := compiler.FromPackage(&pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"})
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
// err = generalRecipe.Tree().ResolveDeps(3)
|
||||||
|
// Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
spec.SetOutputPath(tmpdir)
|
||||||
|
|
||||||
|
artifacts, errs := compiler.CompileParallel(1, false, []CompilationSpec{spec})
|
||||||
|
Expect(errs).To(BeNil())
|
||||||
|
Expect(len(artifacts)).To(Equal(1))
|
||||||
|
|
||||||
|
for _, artifact := range artifacts {
|
||||||
|
Expect(helpers.Exists(artifact.GetPath())).To(BeTrue())
|
||||||
|
Expect(helpers.Untar(artifact.GetPath(), tmpdir, false)).ToNot(HaveOccurred())
|
||||||
|
}
|
||||||
|
Expect(helpers.Exists(spec.Rel("test5"))).To(BeTrue())
|
||||||
|
Expect(helpers.Exists(spec.Rel("marvin"))).To(BeTrue())
|
||||||
|
Expect(helpers.Exists(spec.Rel("test6"))).ToNot(BeTrue())
|
||||||
|
})
|
||||||
|
|
||||||
|
It("Compiles a more complex tree", func() {
|
||||||
|
generalRecipe := tree.NewCompilerRecipe()
|
||||||
|
tmpdir, err := ioutil.TempDir("", "package")
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
defer os.RemoveAll(tmpdir) // clean up
|
||||||
|
|
||||||
|
err = generalRecipe.Load("../../tests/fixtures/layered")
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
Expect(generalRecipe.Tree()).ToNot(BeNil()) // It should be populated back at this point
|
||||||
|
|
||||||
|
Expect(len(generalRecipe.Tree().GetPackageSet().GetPackages())).To(Equal(3))
|
||||||
|
|
||||||
|
compiler := NewLuetCompiler(sd.NewSimpleDockerBackend(), generalRecipe.Tree())
|
||||||
|
spec, err := compiler.FromPackage(&pkg.DefaultPackage{Name: "pkgs-checker", Category: "package", Version: "9999"})
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
// err = generalRecipe.Tree().ResolveDeps(3)
|
||||||
|
// Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
spec.SetOutputPath(tmpdir)
|
||||||
|
|
||||||
|
artifacts, errs := compiler.CompileParallel(1, false, []CompilationSpec{spec})
|
||||||
|
Expect(errs).To(BeNil())
|
||||||
|
Expect(len(artifacts)).To(Equal(1))
|
||||||
|
|
||||||
|
for _, artifact := range artifacts {
|
||||||
|
Expect(helpers.Exists(artifact.GetPath())).To(BeTrue())
|
||||||
|
Expect(helpers.Untar(artifact.GetPath(), tmpdir, false)).ToNot(HaveOccurred())
|
||||||
|
}
|
||||||
|
Expect(helpers.Untar(spec.Rel("extra-layer-0.1.package.tar"), tmpdir, false)).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
Expect(helpers.Exists(spec.Rel("extra-layer"))).To(BeTrue())
|
||||||
|
|
||||||
|
Expect(helpers.Exists(spec.Rel("usr/bin/pkgs-checker"))).To(BeTrue())
|
||||||
|
Expect(helpers.Exists(spec.Rel("base-layer-0.1.package.tar"))).To(BeTrue())
|
||||||
|
Expect(helpers.Exists(spec.Rel("extra-layer-0.1.package.tar"))).To(BeTrue())
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
11
tests/fixtures/include/build.yaml
vendored
Normal file
11
tests/fixtures/include/build.yaml
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
image: "alpine"
|
||||||
|
prelude:
|
||||||
|
- echo foo > /test
|
||||||
|
- echo bar > /test2
|
||||||
|
steps:
|
||||||
|
- echo artifact5 > /test5
|
||||||
|
- echo artifact6 > /test6
|
||||||
|
- echo artifact43 > /marvin
|
||||||
|
includes:
|
||||||
|
- /test5
|
||||||
|
- mar.*
|
3
tests/fixtures/include/definition.yaml
vendored
Normal file
3
tests/fixtures/include/definition.yaml
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
category: "test"
|
||||||
|
name: "b"
|
||||||
|
version: "1.0"
|
2
tests/fixtures/layered/layer/base/build.yaml
vendored
Normal file
2
tests/fixtures/layered/layer/base/build.yaml
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
image: "golang:alpine"
|
||||||
|
unpack: true
|
3
tests/fixtures/layered/layer/base/definition.yaml
vendored
Normal file
3
tests/fixtures/layered/layer/base/definition.yaml
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
category: "layer"
|
||||||
|
name: "base"
|
||||||
|
version: "0.1"
|
10
tests/fixtures/layered/layer/extra/build.yaml
vendored
Normal file
10
tests/fixtures/layered/layer/extra/build.yaml
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
requires:
|
||||||
|
- category: "layer"
|
||||||
|
name: "base"
|
||||||
|
version: "0.1"
|
||||||
|
prelude:
|
||||||
|
- apk update
|
||||||
|
- apk add git
|
||||||
|
- rm -rf /go/pkg/mod
|
||||||
|
steps:
|
||||||
|
- echo test > /extra-layer
|
3
tests/fixtures/layered/layer/extra/definition.yaml
vendored
Normal file
3
tests/fixtures/layered/layer/extra/definition.yaml
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
category: "layer"
|
||||||
|
name: "extra"
|
||||||
|
version: "0.1"
|
12
tests/fixtures/layered/pkgs-checker/build.yaml
vendored
Normal file
12
tests/fixtures/layered/pkgs-checker/build.yaml
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
requires:
|
||||||
|
- category: "layer"
|
||||||
|
name: "extra"
|
||||||
|
version: "0.1"
|
||||||
|
prelude:
|
||||||
|
- apk add git
|
||||||
|
- mkdir -p /go/src/github.com/Sabayon/
|
||||||
|
- git clone https://github.com/Sabayon/pkgs-checker /go/src/github.com/Sabayon/pkgs-checker
|
||||||
|
steps:
|
||||||
|
- cd /go/src/github.com/Sabayon/pkgs-checker && go build -o /usr/bin/pkgs-checker && chmod +x /usr/bin/pkgs-checker
|
||||||
|
includes:
|
||||||
|
- pkgs-checker
|
3
tests/fixtures/layered/pkgs-checker/definition.yaml
vendored
Normal file
3
tests/fixtures/layered/pkgs-checker/definition.yaml
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
category: "package"
|
||||||
|
name: "pkgs-checker"
|
||||||
|
version: "9999"
|
Loading…
Reference in New Issue
Block a user