diff --git a/go.mod b/go.mod index 8e94a7d..c2ff4b0 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.73.2 github.com/docker/go-connections v0.5.0 github.com/grafana/clireadme v0.1.0 - github.com/grafana/k6foundry v0.3.1 + github.com/grafana/k6foundry v0.4.0 github.com/spf13/cobra v1.8.1 github.com/testcontainers/testcontainers-go/modules/localstack v0.35.0 ) diff --git a/go.sum b/go.sum index 8c3192a..35a8089 100644 --- a/go.sum +++ b/go.sum @@ -92,8 +92,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grafana/clireadme v0.1.0 h1:KYEYSnYdSzmHf3bufaK6fQZ5j4dzvM/T+G6Ba+qNnAM= github.com/grafana/clireadme v0.1.0/go.mod h1:Wy4KIG2ZBGMYAYyF9l7qAy+yoJVasqk/txsRgoRI3gc= -github.com/grafana/k6foundry v0.3.1 h1:nv4BqlJfNXrVMk7ps7mlGiPgegR73ogTvisn1y0bYJ8= -github.com/grafana/k6foundry v0.3.1/go.mod h1:4Hw0ll6ZsKN8f3cgp7I4N6EkhXafZ6CBC6fDJWkW7/Q= +github.com/grafana/k6foundry v0.4.0 h1:Gh8oMaW02VHWxrGBHKLq3fvGa5LKMI0Z2feK2Ukkzw0= +github.com/grafana/k6foundry v0.4.0/go.mod h1:4Hw0ll6ZsKN8f3cgp7I4N6EkhXafZ6CBC6fDJWkW7/Q= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= diff --git a/pkg/builder/builder.go b/pkg/builder/builder.go index 087aba2..15bf7cc 100644 --- a/pkg/builder/builder.go +++ b/pkg/builder/builder.go @@ -42,16 +42,19 @@ var ( // GoOpts defines the options for the go build environment type GoOpts = k6foundry.GoOpts -// Foundry is a function that creates a Foundry Builder -type Foundry interface { - NewBuilder(ctx context.Context, opts k6foundry.NativeBuilderOpts) (k6foundry.Builder, error) +// FoundryFactory is a function that creates a FoundryFactory +type FoundryFactory interface { + NewFoundry(ctx context.Context, opts k6foundry.NativeFoundryOpts) (k6foundry.Foundry, error) } -// FoundryFunction defines a function that implements the Foundry interface -type FoundryFunction func(context.Context, k6foundry.NativeBuilderOpts) (k6foundry.Builder, error) +// FoundryFactoryFunction defines a function that implements the FoundryFactory interface +type FoundryFactoryFunction func(context.Context, k6foundry.NativeFoundryOpts) (k6foundry.Foundry, error) -// NewBuilder implements the Foundry interface -func (f FoundryFunction) NewBuilder(ctx context.Context, opts k6foundry.NativeBuilderOpts) (k6foundry.Builder, error) { +// NewFoundry implements the Foundry interface +func (f FoundryFactoryFunction) NewFoundry( + ctx context.Context, + opts k6foundry.NativeFoundryOpts, +) (k6foundry.Foundry, error) { return f(ctx, opts) } @@ -70,7 +73,7 @@ type Config struct { Opts Opts Catalog catalog.Catalog Store store.ObjectStore - Foundry Foundry + Foundry FoundryFactory Registerer prometheus.Registerer } @@ -80,7 +83,7 @@ type Builder struct { catalog catalog.Catalog store store.ObjectStore mutexes sync.Map - foundry Foundry + foundry FoundryFactory metrics *metrics } @@ -96,7 +99,7 @@ func New(_ context.Context, config Config) (*Builder, error) { foundry := config.Foundry if foundry == nil { - foundry = FoundryFunction(k6foundry.NewNativeBuilder) + foundry = FoundryFactoryFunction(k6foundry.NewNativeFoundry) } metrics := newMetrics() @@ -215,7 +218,7 @@ func (b *Builder) Build( //nolint:funlen env["CGO_ENABLED"] = "1" } - builderOpts := k6foundry.NativeBuilderOpts{ + builderOpts := k6foundry.NativeFoundryOpts{ GoOpts: k6foundry.GoOpts{ Env: env, CopyGoEnv: b.opts.CopyGoEnv, @@ -226,7 +229,7 @@ func (b *Builder) Build( //nolint:funlen builderOpts.Stderr = os.Stderr } - builder, err := b.foundry.NewBuilder(ctx, builderOpts) + builder, err := b.foundry.NewFoundry(ctx, builderOpts) if err != nil { return k6build.Artifact{}, k6build.NewWrappedError(ErrInitializingBuilder, err) } @@ -234,7 +237,7 @@ func (b *Builder) Build( //nolint:funlen buildTimer := prometheus.NewTimer(b.metrics.buildTimeHistogram) artifactBuffer := &bytes.Buffer{} - buildInfo, err := builder.Build(ctx, buildPlatform, k6Mod.Version, mods, []string{}, artifactBuffer) + buildInfo, err := builder.Build(ctx, buildPlatform, k6Mod.Version, mods, nil, []string{}, artifactBuffer) if err != nil { b.metrics.buildsFailedCounter.Inc() return k6build.Artifact{}, k6build.NewWrappedError(ErrAccessingArtifact, err) diff --git a/pkg/builder/builder_test.go b/pkg/builder/builder_test.go index 786c505..0eae35e 100644 --- a/pkg/builder/builder_test.go +++ b/pkg/builder/builder_test.go @@ -23,17 +23,18 @@ import ( // DependencyComp compares two dependencies for ordering func DependencyComp(a, b catalog.Module) bool { return a.Path < b.Path } -type mockBuilder struct { - opts k6foundry.NativeBuilderOpts +type mockFoundry struct { + opts k6foundry.NativeFoundryOpts } // Mocks the Faundry's Build method // Returns the build info for the given platform, k6 version and modules -func (m *mockBuilder) Build( +func (m *mockFoundry) Build( _ context.Context, platform k6foundry.Platform, k6Version string, mods []k6foundry.Module, + reps []k6foundry.Module, buildOpts []string, out io.Writer, ) (*k6foundry.BuildInfo, error) { @@ -47,8 +48,8 @@ func (m *mockBuilder) Build( }, nil } -func MockFoundryFactory(_ context.Context, opts k6foundry.NativeBuilderOpts) (k6foundry.Builder, error) { - return &mockBuilder{ +func MockFoundryFactory(_ context.Context, opts k6foundry.NativeFoundryOpts) (k6foundry.Foundry, error) { + return &mockFoundry{ opts: opts, }, nil } @@ -77,7 +78,7 @@ func SetupTestBuilder(t *testing.T) (*Builder, error) { Opts: Opts{}, Catalog: catalog, Store: store, - Foundry: FoundryFunction(MockFoundryFactory), + Foundry: FoundryFactoryFunction(MockFoundryFactory), }) } @@ -466,7 +467,7 @@ func TestMetrics(t *testing.T) { Opts: Opts{}, Catalog: catalog, Store: store, - Foundry: FoundryFunction(MockFoundryFactory), + Foundry: FoundryFactoryFunction(MockFoundryFactory), Registerer: register, }) if err != nil {