Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New flatten buildpacks/builder implementation - Part 2 - Implementing RFC-0123 #1985

Merged
merged 11 commits into from
Jan 22, 2024
Prev Previous commit
Next Next commit
updating the builder create option name for flatten to be more readable
Signed-off-by: Juan Bustamante <jbustamante@vmware.com>
  • Loading branch information
jjbustamante committed Jan 17, 2024
commit 3088664f91a10cd785d4272e426834d97595a8da
2 changes: 1 addition & 1 deletion internal/builder/builder.go
Original file line number Diff line number Diff line change
@@ -163,7 +163,7 @@ func constructBuilder(img imgutil.Image, newName string, errOnMissingLabel bool,
return bldr, nil
}

func Flatten(modules buildpack.FlattenModuleInfos) BuilderOption {
func WithFlatten(modules buildpack.FlattenModuleInfos) BuilderOption {
return func(o *options) error {
o.toFlatten = modules
return nil
2 changes: 1 addition & 1 deletion internal/builder/builder_test.go
Original file line number Diff line number Diff line change
@@ -1877,7 +1877,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
flattenModules, err := buildpack.ParseFlattenBuildModules([]string{"buildpack-1-id@buildpack-1-version-1,buildpack-1-id@buildpack-1-version-2,buildpack-2-id@buildpack-2-version-1"})
h.AssertNil(t, err)

bldr, err = builder.New(builderImage, "some-builder", builder.Flatten(flattenModules))
bldr, err = builder.New(builderImage, "some-builder", builder.WithFlatten(flattenModules))
h.AssertNil(t, err)

// Let's add some buildpacks
9 changes: 4 additions & 5 deletions internal/commands/builder_create_test.go
Original file line number Diff line number Diff line change
@@ -408,20 +408,19 @@ func testCreateCommand(t *testing.T, when spec.G, it spec.S) {
})
})

when("flatten is set to true", func() {
when("flatten buildpacks", func() {
it.Before(func() {
h.AssertNil(t, os.WriteFile(builderConfigPath, []byte(validConfig), 0666))
})

when("flatten exclude doesn't have format <buildpack>@<version>", func() {
when("flatten modules doesn't have format <buildpack>@<version>", func() {
it("errors with a descriptive message", func() {
command.SetArgs([]string{
"some/builder",
"--config", builderConfigPath,
"--flatten",
"--flatten-exclude", "some-buildpack",
"--flatten", "some-buildpack",
})
h.AssertError(t, command.Execute(), fmt.Sprintf("invalid format %s; please use '<buildpack-id>@<buildpack-version>' to exclude buildpack from flattening", "some-buildpack"))
h.AssertError(t, command.Execute(), fmt.Sprintf("invalid format %s; please use '<buildpack-id>@<buildpack-version>' to add buildpacks to be flatten", "some-buildpack"))
})
})
})
2 changes: 1 addition & 1 deletion pkg/client/create_builder.go
Original file line number Diff line number Diff line change
@@ -152,7 +152,7 @@ func (c *Client) createBaseBuilder(ctx context.Context, opts CreateBuilderOption

var builderOpts []builder.BuilderOption
if opts.Flatten != nil && len(opts.Flatten.FlattenModules()) > 0 {
builderOpts = append(builderOpts, builder.Flatten(opts.Flatten))
builderOpts = append(builderOpts, builder.WithFlatten(opts.Flatten))
}
bldr, err := builder.New(baseImage, opts.BuilderName, builderOpts...)
if err != nil {