mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 23:52:19 +08:00
54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package arguments
|
|
|
|
import (
|
|
"context"
|
|
|
|
"dagger.io/dagger"
|
|
"github.com/grafana/grafana/pkg/build/daggerbuild/golang"
|
|
"github.com/grafana/grafana/pkg/build/daggerbuild/pipeline"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
var GoBuildCache = pipeline.Argument{
|
|
Name: "go-cache-volume",
|
|
Description: "Mounted at GOCACHE when building Go backends",
|
|
ArgumentType: pipeline.ArgumentTypeCacheVolume,
|
|
Flags: []cli.Flag{},
|
|
ValueFunc: func(ctx context.Context, opts *pipeline.ArgumentOpts) (any, error) {
|
|
return opts.Client.CacheVolume("go-build-cache"), nil
|
|
},
|
|
}
|
|
|
|
var GoModCache = pipeline.Argument{
|
|
Name: "go-mod-volume",
|
|
Description: "Stores downloaded Go modules when building Go backends",
|
|
ArgumentType: pipeline.ArgumentTypeCacheVolume,
|
|
Flags: []cli.Flag{},
|
|
ValueFunc: func(ctx context.Context, opts *pipeline.ArgumentOpts) (any, error) {
|
|
vol := opts.Client.CacheVolume("go-mod-cache")
|
|
goVersion, err := opts.State.String(ctx, GoVersion)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
src, err := opts.State.Directory(ctx, GrafanaDirectory)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
c := golang.Container(opts.Client, opts.Platform, goVersion).
|
|
WithEnvVariable("GOMODCACHE", "/go/pkg/mod").
|
|
WithMountedCache("/go/pkg/mod", vol).
|
|
WithDirectory("/src", src, dagger.ContainerWithDirectoryOpts{
|
|
Include: []string{"**/*.mod", "**/*.sum", "**/*.work"},
|
|
}).
|
|
WithWorkdir("/src").
|
|
WithExec([]string{"go", "mod", "download"})
|
|
|
|
if _, err := c.Sync(ctx); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return vol, nil
|
|
},
|
|
}
|