mirror of
https://github.com/mudler/luet.git
synced 2025-09-05 17:20:29 +00:00
Drop join from compilation specs
Adapt also hash and integration tests
This commit is contained in:
@@ -784,12 +784,7 @@ func (cs *LuetCompiler) resolveFinalImages(concurrency int, keepPermissions bool
|
|||||||
joinTag := ">:loop: final images<"
|
joinTag := ">:loop: final images<"
|
||||||
var fromPackages pkg.DefaultPackages
|
var fromPackages pkg.DefaultPackages
|
||||||
|
|
||||||
if len(p.Join) > 0 {
|
if p.RequiresFinalImages {
|
||||||
fromPackages = p.Join
|
|
||||||
Warning(joinTag, `
|
|
||||||
Attention! the 'join' keyword is going to be deprecated in Luet >=0.18.x.
|
|
||||||
Use 'requires_final_images: true' instead in the build.yaml file`)
|
|
||||||
} else if p.RequiresFinalImages {
|
|
||||||
Info(joinTag, "Generating a parent image from final packages")
|
Info(joinTag, "Generating a parent image from final packages")
|
||||||
fromPackages = p.Package.GetRequires()
|
fromPackages = p.Package.GetRequires()
|
||||||
} else {
|
} else {
|
||||||
@@ -833,7 +828,7 @@ func (cs *LuetCompiler) resolveFinalImages(concurrency int, keepPermissions bool
|
|||||||
for _, c := range fromPackages {
|
for _, c := range fromPackages {
|
||||||
current++
|
current++
|
||||||
if c != nil && c.Name != "" && c.Version != "" {
|
if c != nil && c.Name != "" && c.Version != "" {
|
||||||
joinTag2 := fmt.Sprintf("%s %d/%d ⤑ :hammer: build %s", joinTag, current, len(p.Join), c.HumanReadableString())
|
joinTag2 := fmt.Sprintf("%s %d/%d ⤑ :hammer: build %s", joinTag, current, len(p.Package.GetRequires()), c.HumanReadableString())
|
||||||
|
|
||||||
Info(joinTag2, "compilation starts")
|
Info(joinTag2, "compilation starts")
|
||||||
spec, err := cs.FromPackage(c)
|
spec, err := cs.FromPackage(c)
|
||||||
|
@@ -46,13 +46,13 @@ var _ = Describe("ImageHashTree", func() {
|
|||||||
|
|
||||||
packageHash, err := hashtree.Query(compiler, spec)
|
packageHash, err := hashtree.Query(compiler, spec)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(packageHash.Target.Hash.BuildHash).To(Equal("53993e5a02da4c21ad845371c872f5836fe45ff3a4e3c5ccb6296d0faee2b107"))
|
Expect(packageHash.Target.Hash.BuildHash).To(Equal("895697a8bb51b219b78ed081fa1b778801e81505bb03f56acafcf3c476620fc1"))
|
||||||
Expect(packageHash.Target.Hash.PackageHash).To(Equal("a786d3fd29d0b8bdfe5f304c8bf8be909d5c764cd7059c0e63294a8bff17f3ef"))
|
Expect(packageHash.Target.Hash.PackageHash).To(Equal("2a6c3dc0dd7af2902fd8823a24402d89b2030cfbea6e63fe81afb34af8b1a005"))
|
||||||
Expect(packageHash.BuilderImageHash).To(Equal("builder-0cd3c0d07fc9be568377b3bf1b699e06"))
|
Expect(packageHash.BuilderImageHash).To(Equal("builder-3a28d240f505d69123735a567beaf80e"))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
expectedPackageHash := "0d568ac04c4ca528a4e5b67978f2ad3a75d31d443ab20f9d7683b9608cc0d494"
|
expectedPackageHash := "f3f42a7435293225e92a51da8416f90b7c0ccd5958cd5c72276c39ece408c01f"
|
||||||
|
|
||||||
Context("complex package definition", func() {
|
Context("complex package definition", func() {
|
||||||
BeforeEach(func() {
|
BeforeEach(func() {
|
||||||
@@ -73,26 +73,26 @@ var _ = Describe("ImageHashTree", func() {
|
|||||||
|
|
||||||
Expect(packageHash.Dependencies[len(packageHash.Dependencies)-1].Hash.PackageHash).To(Equal(expectedPackageHash))
|
Expect(packageHash.Dependencies[len(packageHash.Dependencies)-1].Hash.PackageHash).To(Equal(expectedPackageHash))
|
||||||
Expect(packageHash.SourceHash).To(Equal(expectedPackageHash))
|
Expect(packageHash.SourceHash).To(Equal(expectedPackageHash))
|
||||||
Expect(packageHash.BuilderImageHash).To(Equal("builder-0f45c345f59103e84fc8bebbf02f2e2b"))
|
Expect(packageHash.BuilderImageHash).To(Equal("builder-977129605c0d7e974cc8a431a563cec1"))
|
||||||
|
|
||||||
//Expect(packageHash.Target.Hash.BuildHash).To(Equal("79d7107d13d578b362e6a7bf10ec850efce26316405b8d732ce8f9e004d64281"))
|
//Expect(packageHash.Target.Hash.BuildHash).To(Equal("79d7107d13d578b362e6a7bf10ec850efce26316405b8d732ce8f9e004d64281"))
|
||||||
Expect(packageHash.Target.Hash.PackageHash).To(Equal("2e8159583ac825acada763358290cfbea919a33873a926cab84f4f1a67ecf111"))
|
Expect(packageHash.Target.Hash.PackageHash).To(Equal("9112e2c97bf8ca998c1df303a9ebc4957b685930c882e9aa556eab4507220079"))
|
||||||
a := &pkg.DefaultPackage{Name: "a", Category: "test", Version: "1.1"}
|
a := &pkg.DefaultPackage{Name: "a", Category: "test", Version: "1.1"}
|
||||||
hash, err := packageHash.DependencyBuildImage(a)
|
hash, err := packageHash.DependencyBuildImage(a)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
Expect(hash).To(Equal("74c6c833730e9ebd1d9fc669278152b5b58ec7ecb28fdae56658665616076adf"))
|
Expect(hash).To(Equal("b4b61939260263582da1dfa5289182a0a7570ef8658f3b01b1997fe5d8a95e49"))
|
||||||
|
|
||||||
assertionA := packageHash.Dependencies.Search(a.GetFingerPrint())
|
assertionA := packageHash.Dependencies.Search(a.GetFingerPrint())
|
||||||
Expect(assertionA.Hash.PackageHash).To(Equal(expectedPackageHash))
|
Expect(assertionA.Hash.PackageHash).To(Equal(expectedPackageHash))
|
||||||
b := &pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"}
|
b := &pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"}
|
||||||
assertionB := packageHash.Dependencies.Search(b.GetFingerPrint())
|
assertionB := packageHash.Dependencies.Search(b.GetFingerPrint())
|
||||||
|
|
||||||
Expect(assertionB.Hash.PackageHash).To(Equal("74c6c833730e9ebd1d9fc669278152b5b58ec7ecb28fdae56658665616076adf"))
|
Expect(assertionB.Hash.PackageHash).To(Equal("b4b61939260263582da1dfa5289182a0a7570ef8658f3b01b1997fe5d8a95e49"))
|
||||||
hashB, err := packageHash.DependencyBuildImage(b)
|
hashB, err := packageHash.DependencyBuildImage(b)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
Expect(hashB).To(Equal("315075265aeb2e3c04c5428d31911f53c194ec9fa3db1421e8478f44b1e0def8"))
|
Expect(hashB).To(Equal("fc6fdd4bd62d51fc06c2c22e8bc56543727a2340220972594e28c623ea3a9c6c"))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -113,37 +113,36 @@ var _ = Describe("ImageHashTree", func() {
|
|||||||
|
|
||||||
packageHash, err := hashtree.Query(compiler, spec)
|
packageHash, err := hashtree.Query(compiler, spec)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
Expect(packageHash.Dependencies[len(packageHash.Dependencies)-1].Hash.PackageHash).ToNot(Equal(expectedPackageHash))
|
Expect(packageHash.Dependencies[len(packageHash.Dependencies)-1].Hash.PackageHash).ToNot(Equal(expectedPackageHash))
|
||||||
sourceHash := "66ec001fe72052d0e605ca96f607ae39ea4f8b53f0b7f762e377622d9c654de3"
|
sourceHash := "f0d96e79a0021b065674c58203158a02ed702ff29cc2ee6605e1f16f1fae9b89"
|
||||||
Expect(packageHash.Dependencies[len(packageHash.Dependencies)-1].Hash.PackageHash).To(Equal(sourceHash))
|
Expect(packageHash.Dependencies[len(packageHash.Dependencies)-1].Hash.PackageHash).To(Equal(sourceHash))
|
||||||
Expect(packageHash.SourceHash).To(Equal(sourceHash))
|
Expect(packageHash.SourceHash).To(Equal(sourceHash))
|
||||||
|
|
||||||
Expect(packageHash.SourceHash).ToNot(Equal(expectedPackageHash))
|
Expect(packageHash.SourceHash).ToNot(Equal(expectedPackageHash))
|
||||||
|
|
||||||
Expect(packageHash.BuilderImageHash).To(Equal("builder-ffc02fd8aaa916d0e17249885b3226b1"))
|
Expect(packageHash.BuilderImageHash).To(Equal("builder-05506adb3777ed74825254e8b46da5e9"))
|
||||||
|
|
||||||
//Expect(packageHash.Target.Hash.BuildHash).To(Equal("79d7107d13d578b362e6a7bf10ec850efce26316405b8d732ce8f9e004d64281"))
|
//Expect(packageHash.Target.Hash.BuildHash).To(Equal("79d7107d13d578b362e6a7bf10ec850efce26316405b8d732ce8f9e004d64281"))
|
||||||
Expect(packageHash.Target.Hash.PackageHash).To(Equal("b9c0286ebf6d28be831926ec7da9cb3cda6b489722d656aefc363ebd7173f937"))
|
Expect(packageHash.Target.Hash.PackageHash).To(Equal("489ece9825e18eba2de91e93293d5c61578d492d42bbfe9b6ae2e2c3c11bc842"))
|
||||||
a := &pkg.DefaultPackage{Name: "a", Category: "test", Version: "1.1"}
|
a := &pkg.DefaultPackage{Name: "a", Category: "test", Version: "1.1"}
|
||||||
hash, err := packageHash.DependencyBuildImage(a)
|
hash, err := packageHash.DependencyBuildImage(a)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
Expect(hash).To(Equal("74c6c833730e9ebd1d9fc669278152b5b58ec7ecb28fdae56658665616076adf"))
|
Expect(hash).To(Equal("b4b61939260263582da1dfa5289182a0a7570ef8658f3b01b1997fe5d8a95e49"))
|
||||||
|
|
||||||
assertionA := packageHash.Dependencies.Search(a.GetFingerPrint())
|
assertionA := packageHash.Dependencies.Search(a.GetFingerPrint())
|
||||||
|
|
||||||
Expect(assertionA.Hash.PackageHash).To(Equal("66ec001fe72052d0e605ca96f607ae39ea4f8b53f0b7f762e377622d9c654de3"))
|
Expect(assertionA.Hash.PackageHash).To(Equal("f0d96e79a0021b065674c58203158a02ed702ff29cc2ee6605e1f16f1fae9b89"))
|
||||||
Expect(assertionA.Hash.PackageHash).ToNot(Equal(expectedPackageHash))
|
Expect(assertionA.Hash.PackageHash).ToNot(Equal(expectedPackageHash))
|
||||||
|
|
||||||
b := &pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"}
|
b := &pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"}
|
||||||
assertionB := packageHash.Dependencies.Search(b.GetFingerPrint())
|
assertionB := packageHash.Dependencies.Search(b.GetFingerPrint())
|
||||||
|
|
||||||
Expect(assertionB.Hash.PackageHash).To(Equal("74c6c833730e9ebd1d9fc669278152b5b58ec7ecb28fdae56658665616076adf"))
|
Expect(assertionB.Hash.PackageHash).To(Equal("b4b61939260263582da1dfa5289182a0a7570ef8658f3b01b1997fe5d8a95e49"))
|
||||||
hashB, err := packageHash.DependencyBuildImage(b)
|
hashB, err := packageHash.DependencyBuildImage(b)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
Expect(hashB).To(Equal("315075265aeb2e3c04c5428d31911f53c194ec9fa3db1421e8478f44b1e0def8"))
|
Expect(hashB).To(Equal("fc6fdd4bd62d51fc06c2c22e8bc56543727a2340220972594e28c623ea3a9c6c"))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@@ -116,7 +116,6 @@ type LuetCompilationSpec struct {
|
|||||||
|
|
||||||
Copy []CopyField `json:"copy"`
|
Copy []CopyField `json:"copy"`
|
||||||
|
|
||||||
Join pkg.DefaultPackages `json:"join"`
|
|
||||||
RequiresFinalImages bool `json:"requires_final_images" yaml:"requires_final_images"`
|
RequiresFinalImages bool `json:"requires_final_images" yaml:"requires_final_images"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +132,7 @@ type Signature struct {
|
|||||||
Includes []string
|
Includes []string
|
||||||
Excludes []string
|
Excludes []string
|
||||||
Copy []CopyField
|
Copy []CopyField
|
||||||
Join pkg.DefaultPackages
|
Requires pkg.DefaultPackages
|
||||||
RequiresFinalImages bool
|
RequiresFinalImages bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,7 +149,7 @@ func (cs *LuetCompilationSpec) signature() Signature {
|
|||||||
Includes: cs.Includes,
|
Includes: cs.Includes,
|
||||||
Excludes: cs.Excludes,
|
Excludes: cs.Excludes,
|
||||||
Copy: cs.Copy,
|
Copy: cs.Copy,
|
||||||
Join: cs.Join,
|
Requires: cs.Package.GetRequires(),
|
||||||
RequiresFinalImages: cs.RequiresFinalImages,
|
RequiresFinalImages: cs.RequiresFinalImages,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -283,7 +282,7 @@ func (cs *LuetCompilationSpec) UnpackedPackage() bool {
|
|||||||
// a compilation spec has an image source when it depends on other packages or have a source image
|
// a compilation spec has an image source when it depends on other packages or have a source image
|
||||||
// explictly supplied
|
// explictly supplied
|
||||||
func (cs *LuetCompilationSpec) HasImageSource() bool {
|
func (cs *LuetCompilationSpec) HasImageSource() bool {
|
||||||
return (cs.Package != nil && len(cs.GetPackage().GetRequires()) != 0) || cs.GetImage() != "" || len(cs.Join) != 0
|
return (cs.Package != nil && len(cs.GetPackage().GetRequires()) != 0) || cs.GetImage() != "" || (cs.RequiresFinalImages && len(cs.Package.GetRequires()) != 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cs *LuetCompilationSpec) Hash() (string, error) {
|
func (cs *LuetCompilationSpec) Hash() (string, error) {
|
||||||
|
3
tests/fixtures/join/c/a/build.yaml
vendored
3
tests/fixtures/join/c/a/build.yaml
vendored
@@ -1,8 +1,9 @@
|
|||||||
join:
|
requires:
|
||||||
- name: "a"
|
- name: "a"
|
||||||
category: "test"
|
category: "test"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
- name: "b"
|
- name: "b"
|
||||||
category: "test"
|
category: "test"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
|
requires_final_images: true
|
||||||
unpack: true
|
unpack: true
|
4
tests/fixtures/join_complex/c/c1/build.yaml
vendored
4
tests/fixtures/join_complex/c/c1/build.yaml
vendored
@@ -1,7 +1,9 @@
|
|||||||
join:
|
requires:
|
||||||
- name: "a"
|
- name: "a"
|
||||||
category: "test"
|
category: "test"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
- name: "b"
|
- name: "b"
|
||||||
category: "test"
|
category: "test"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
|
|
||||||
|
requires_final_images: true
|
4
tests/fixtures/join_complex/c/f/build.yaml
vendored
4
tests/fixtures/join_complex/c/f/build.yaml
vendored
@@ -1,4 +1,4 @@
|
|||||||
join:
|
requires:
|
||||||
- name: "a"
|
- name: "a"
|
||||||
category: "test"
|
category: "test"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
@@ -6,3 +6,5 @@ join:
|
|||||||
category: "test"
|
category: "test"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
unpack: true
|
unpack: true
|
||||||
|
|
||||||
|
requires_final_images: true
|
4
tests/fixtures/join_complex/x/build.yaml
vendored
4
tests/fixtures/join_complex/x/build.yaml
vendored
@@ -1,4 +1,4 @@
|
|||||||
join:
|
requires:
|
||||||
- category: "test"
|
- category: "test"
|
||||||
name: "f"
|
name: "f"
|
||||||
version: ">=0"
|
version: ">=0"
|
||||||
@@ -8,3 +8,5 @@ join:
|
|||||||
version: ">=0"
|
version: ">=0"
|
||||||
steps:
|
steps:
|
||||||
- mv /newnewc /x
|
- mv /newnewc /x
|
||||||
|
|
||||||
|
requires_final_images: true
|
@@ -51,9 +51,9 @@ testBuild() {
|
|||||||
assertTrue 'create package' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.zst' ]"
|
assertTrue 'create package' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.zst' ]"
|
||||||
assertTrue 'create package Z' "[ -e '$tmpdir/testbuild/z-test-1.0+2.package.tar.zst' ]"
|
assertTrue 'create package Z' "[ -e '$tmpdir/testbuild/z-test-1.0+2.package.tar.zst' ]"
|
||||||
assertTrue 'create package interpolated' "[ -e '$tmpdir/testbuild/interpolated-test-1.0+2.package.tar.zst' ]"
|
assertTrue 'create package interpolated' "[ -e '$tmpdir/testbuild/interpolated-test-1.0+2.package.tar.zst' ]"
|
||||||
assertContains 'Does use the upstream cache without specifying it test/c' "$build_output" "Images available remotely for test/c-1.0 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:7a46e5c8893b574d9f984eaade75b0e68cc891bb6d01860ba91a62f9e4de2b62"
|
assertContains 'Does use the upstream cache without specifying it test/c' "$build_output" "Images available remotely for test/c-1.0 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:45aee5952a98ec9fb7bf6de0eb238e7a7ad1a2ca0645be33400b4d52b8a6527a"
|
||||||
assertContains 'Does use the upstream cache without specifying it test/z' "$build_output" "Images available remotely for test/z-1.0+2 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:4277934ece4de17856b87294301cdfcdf3c6f956e682ff64697be67178b8a4b1"
|
assertContains 'Does use the upstream cache without specifying it test/z' "$build_output" "Images available remotely for test/z-1.0+2 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:e324d35eca913bde850b6fd130496b3b347f0090d5bbed900d4b64b837df89d8"
|
||||||
assertContains 'Does use the upstream cache without specifying it test/interpolated' "$build_output" "Images available remotely for test/interpolated-1.0+2 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:132c097844b4e809efa8ae234452893b0214a1c860371e21564d89655ab10a56"
|
assertContains 'Does use the upstream cache without specifying it test/interpolated' "$build_output" "Images available remotely for test/interpolated-1.0+2 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:bec91b2b88dfeb68c9cad762a99a35233f7a38722573c4982d9b2168aac5992e"
|
||||||
}
|
}
|
||||||
|
|
||||||
testRepo() {
|
testRepo() {
|
||||||
|
@@ -56,8 +56,8 @@ EOF
|
|||||||
assertTrue 'create package' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.zst' ]"
|
assertTrue 'create package' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.zst' ]"
|
||||||
assertTrue 'create package Z' "[ -e '$tmpdir/testbuild/z-test-1.0+2.package.tar.zst' ]"
|
assertTrue 'create package Z' "[ -e '$tmpdir/testbuild/z-test-1.0+2.package.tar.zst' ]"
|
||||||
assertTrue 'create package interpolated' "[ -e '$tmpdir/testbuild/interpolated-test-1.0+2.package.tar.zst' ]"
|
assertTrue 'create package interpolated' "[ -e '$tmpdir/testbuild/interpolated-test-1.0+2.package.tar.zst' ]"
|
||||||
assertNotContains 'Does NOT use the upstream cache without specifying it' "$build_output" "Images available remotely for test/interpolated-1.0+2 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:132c097844b4e809efa8ae234452893b0214a1c860371e21564d89655ab10a56"
|
assertNotContains 'Does NOT use the upstream cache without specifying it' "$build_output" "Images available remotely for test/interpolated-1.0+2 generating artifact from remote images: quay.io/mocaccinoos/integration-test-cache:bec91b2b88dfeb68c9cad762a99a35233f7a38722573c4982d9b2168aac5992e"
|
||||||
assertContains 'Does generate a new hash as values changed build.yaml for test/interpolated-1.0+2 package image' "$build_output" "Building image luet/cache:a7edf5c9ab219e406b64b2692ce08d56a8bcd212a43bb70df3737f13a008dfd4 done"
|
assertContains 'Does generate a new hash as values changed build.yaml for test/interpolated-1.0+2 package image' "$build_output" "Building image luet/cache:e0a392a824a56f720af104df1e9c79cb4cb2af58a8bab728979891554476c6ff done"
|
||||||
}
|
}
|
||||||
|
|
||||||
testRepo() {
|
testRepo() {
|
||||||
|
@@ -56,7 +56,7 @@ EOF
|
|||||||
assertTrue 'create package' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.zst' ]"
|
assertTrue 'create package' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.zst' ]"
|
||||||
assertTrue 'create package Z' "[ -e '$tmpdir/testbuild/z-test-1.0+2.package.tar.zst' ]"
|
assertTrue 'create package Z' "[ -e '$tmpdir/testbuild/z-test-1.0+2.package.tar.zst' ]"
|
||||||
assertTrue 'create package interpolated' "[ -e '$tmpdir/testbuild/interpolated-test-1.0+2.package.tar.zst' ]"
|
assertTrue 'create package interpolated' "[ -e '$tmpdir/testbuild/interpolated-test-1.0+2.package.tar.zst' ]"
|
||||||
assertContains 'Does use the upstream cache without specifying it (test/c-1.0)' "$build_output" "quay.io/mocaccinoos/integration-test-cache:a786d3fd29d0b8bdfe5f304c8bf8be909d5c764cd7059c0e63294a8bff17f3ef"
|
assertContains 'Does use the upstream cache without specifying it (test/c-1.0)' "$build_output" "quay.io/mocaccinoos/integration-test-cache:895697a8bb51b219b78ed081fa1b778801e81505bb03f56acafcf3c476620fc1"
|
||||||
}
|
}
|
||||||
|
|
||||||
testRepo() {
|
testRepo() {
|
||||||
|
Reference in New Issue
Block a user