mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 23:52:19 +08:00
56 lines
1.9 KiB
Go
56 lines
1.9 KiB
Go
package frontend
|
|
|
|
import (
|
|
"dagger.io/dagger"
|
|
)
|
|
|
|
// Builder mounts all of the necessary files to run yarn build commands and includes a yarn install exec
|
|
func Builder(d *dagger.Client, platform dagger.Platform, src *dagger.Directory, nodeVersion string, cache *dagger.CacheVolume) *dagger.Container {
|
|
container := WithYarnCache(
|
|
NodeContainer(d, NodeImage(nodeVersion), platform),
|
|
cache,
|
|
).
|
|
WithDirectory("/src",
|
|
src.
|
|
WithoutFile("go.mod").
|
|
WithoutFile("go.sum").
|
|
WithoutFile("go.work").
|
|
WithoutFile("go.work.sum").
|
|
WithoutDirectory("devenv").
|
|
WithoutDirectory(".github").
|
|
WithoutDirectory("docs").
|
|
WithoutDirectory("pkg").
|
|
WithoutDirectory("apps").
|
|
WithoutDirectory(".nx"),
|
|
dagger.ContainerWithDirectoryOpts{
|
|
Exclude: []string{
|
|
"*drone*",
|
|
"*.go",
|
|
"*.md",
|
|
},
|
|
},
|
|
).
|
|
WithWorkdir("/src")
|
|
|
|
// TODO: Should figure out exactly what we can include without all the extras so we can take advantage of caching better.
|
|
// This had to be commented because storybook builds on branches older than 10.1.x were failing.
|
|
|
|
// container = containers.WithDirectories(container, map[string]*dagger.Directory{
|
|
// ".yarn": src.Directory(".yarn"),
|
|
// "packages": src.Directory("packages"),
|
|
// "plugins-bundled": src.Directory("plugins-bundled"),
|
|
// "public": src.Directory("public"),
|
|
// "scripts": src.Directory("scripts"),
|
|
// })
|
|
|
|
// container = containers.WithFiles(container, map[string]*dagger.File{
|
|
// "package.json": src.File("package.json"),
|
|
// "lerna.json": src.File("lerna.json"),
|
|
// "yarn.lock": src.File("yarn.lock"),
|
|
// ".yarnrc.yml": src.File(".yarnrc.yml"),
|
|
// })
|
|
|
|
// This yarn install is ran just to rebuild the yarn pnp files; all of the dependencies should be in the cache by now
|
|
return container.WithExec([]string{"yarn", "install", "--immutable"})
|
|
}
|