CI: move grafana-build into pkg/build (#105640)
* move grafana-build into pkg/build
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package flags
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/build/daggerbuild/backend"
|
||||
"github.com/grafana/grafana/pkg/build/daggerbuild/pipeline"
|
||||
)
|
||||
|
||||
const (
|
||||
FlagDistribution = "distro"
|
||||
)
|
||||
|
||||
var StaticDistributions = []backend.Distribution{
|
||||
backend.DistLinuxAMD64,
|
||||
backend.DistLinuxARM64,
|
||||
backend.DistLinuxARMv7,
|
||||
backend.DistLinuxRISCV64,
|
||||
backend.DistLinuxS390X,
|
||||
}
|
||||
|
||||
var DynamicDistributions = []backend.Distribution{
|
||||
backend.DistDarwinAMD64,
|
||||
backend.DistDarwinARM64,
|
||||
backend.DistWindowsAMD64,
|
||||
backend.DistWindowsARM64,
|
||||
backend.DistLinuxAMD64Dynamic,
|
||||
backend.DistLinuxAMD64DynamicMusl,
|
||||
}
|
||||
|
||||
func DistroFlags() []pipeline.Flag {
|
||||
// These distributions have specific options that set some stuff.
|
||||
f := []pipeline.Flag{
|
||||
{
|
||||
Name: string(backend.DistLinuxARMv6),
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
Distribution: string(backend.DistLinuxARMv6),
|
||||
Static: true,
|
||||
RPI: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, v := range StaticDistributions {
|
||||
d := string(v)
|
||||
f = append(f, pipeline.Flag{
|
||||
Name: d,
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
Distribution: d,
|
||||
Static: true,
|
||||
},
|
||||
})
|
||||
}
|
||||
for _, v := range DynamicDistributions {
|
||||
d := string(v)
|
||||
f = append(f, pipeline.Flag{
|
||||
Name: d,
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
Distribution: d,
|
||||
Static: false,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
return f
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package flags
|
||||
|
||||
import "github.com/grafana/grafana/pkg/build/daggerbuild/pipeline"
|
||||
|
||||
var (
|
||||
Ubuntu pipeline.FlagOption = "docker-ubuntu"
|
||||
DockerRepositories pipeline.FlagOption = "docker-repos"
|
||||
)
|
||||
|
||||
var DockerFlags = []pipeline.Flag{
|
||||
{
|
||||
Name: "ubuntu",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
Ubuntu: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// Package flags defines the "flags" that are used in various artifacts throughout the application.
|
||||
// A flag is an artifact-specific string alias to a set of options.
|
||||
// Examples:
|
||||
// - the 'boringcrypto' flag, when used in an artifact string like `boringcrypto:targz:linux/amd64`, informs the `targz` artifact that
|
||||
// the package name is 'grafana-boringcrypto', and that when it is built, the GOEXPERIMENT=boringcrypto flag must be set.
|
||||
// - the 'targz' flag forces the use of the 'targz' artifact, whose exention will end in `tar.gz`, and will require the compiled 'backend' and 'frontend'.
|
||||
package flags
|
||||
@@ -0,0 +1,12 @@
|
||||
package flags
|
||||
|
||||
import "github.com/grafana/grafana/pkg/build/daggerbuild/pipeline"
|
||||
|
||||
func JoinFlags(f ...[]pipeline.Flag) []pipeline.Flag {
|
||||
r := []pipeline.Flag{}
|
||||
for _, v := range f {
|
||||
r = append(r, v...)
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package flags
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/build/daggerbuild/packages"
|
||||
"github.com/grafana/grafana/pkg/build/daggerbuild/pipeline"
|
||||
)
|
||||
|
||||
var DefaultTags = []string{
|
||||
"osusergo",
|
||||
"timetzdata",
|
||||
}
|
||||
|
||||
const (
|
||||
PackageName pipeline.FlagOption = "package-name"
|
||||
Distribution pipeline.FlagOption = "distribution"
|
||||
Static pipeline.FlagOption = "static"
|
||||
Enterprise pipeline.FlagOption = "enterprise"
|
||||
WireTag pipeline.FlagOption = "wire-tag"
|
||||
GoTags pipeline.FlagOption = "go-tag"
|
||||
GoExperiments pipeline.FlagOption = "go-experiments"
|
||||
Sign pipeline.FlagOption = "sign"
|
||||
|
||||
// Pretty much only used to set the deb or RPM internal package name (and file name) to `{}-nightly` and/or `{}-rpi`
|
||||
Nightly pipeline.FlagOption = "nightly"
|
||||
RPI pipeline.FlagOption = "rpi"
|
||||
)
|
||||
|
||||
// PackageNameFlags - flags that packages (targz, deb, rpm, docker) must have.
|
||||
// Essentially they must have all of the same things that the targz package has.
|
||||
var PackageNameFlags = []pipeline.Flag{
|
||||
{
|
||||
Name: "grafana",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
DockerRepositories: []string{"grafana-image-tags", "grafana-oss-image-tags"},
|
||||
PackageName: string(packages.PackageGrafana),
|
||||
Enterprise: false,
|
||||
WireTag: "oss",
|
||||
GoExperiments: []string{},
|
||||
GoTags: DefaultTags,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "enterprise",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
DockerRepositories: []string{"grafana-enterprise-image-tags"},
|
||||
PackageName: string(packages.PackageEnterprise),
|
||||
Enterprise: true,
|
||||
WireTag: "enterprise",
|
||||
GoExperiments: []string{},
|
||||
GoTags: append(DefaultTags, "enterprise"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "pro",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
DockerRepositories: []string{"grafana-pro"},
|
||||
PackageName: string(packages.PackagePro),
|
||||
Enterprise: true,
|
||||
WireTag: "pro",
|
||||
GoExperiments: []string{},
|
||||
GoTags: append(DefaultTags, "pro"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "boring",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
DockerRepositories: []string{"grafana-enterprise-image-tags"},
|
||||
PackageName: string(packages.PackageEnterpriseBoring),
|
||||
Enterprise: true,
|
||||
WireTag: "enterprise",
|
||||
GoExperiments: []string{"boringcrypto"},
|
||||
GoTags: append(DefaultTags, "enterprise"),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
var SignFlag = pipeline.Flag{
|
||||
Name: "sign",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
Sign: true,
|
||||
},
|
||||
}
|
||||
|
||||
var NightlyFlag = pipeline.Flag{
|
||||
Name: "nightly",
|
||||
Options: map[pipeline.FlagOption]any{
|
||||
Nightly: true,
|
||||
},
|
||||
}
|
||||
|
||||
func StdPackageFlags() []pipeline.Flag {
|
||||
distros := DistroFlags()
|
||||
names := PackageNameFlags
|
||||
|
||||
return JoinFlags(
|
||||
distros,
|
||||
names,
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user