2022-07-28 09:11:22 -05:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"os"
|
2022-08-09 01:43:28 -05:00
|
|
|
"strings"
|
2022-07-28 09:11:22 -05:00
|
|
|
|
2022-10-03 07:29:32 -05:00
|
|
|
"github.com/grafana/grafana/pkg/build/config"
|
2022-08-09 01:43:28 -05:00
|
|
|
"github.com/grafana/grafana/pkg/build/docker"
|
2022-09-29 06:32:42 -05:00
|
|
|
"github.com/grafana/grafana/pkg/build/packaging"
|
2022-07-28 09:11:22 -05:00
|
|
|
"github.com/urfave/cli/v2"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
app := cli.NewApp()
|
|
|
|
app.Commands = cli.Commands{
|
|
|
|
{
|
|
|
|
Name: "build-backend",
|
|
|
|
Usage: "Build one or more variants of back-end binaries",
|
|
|
|
ArgsUsage: "[version]",
|
|
|
|
Action: ArgCountWrapper(1, BuildBackend),
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&variantsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&buildIDFlag,
|
|
|
|
},
|
|
|
|
},
|
2022-09-06 12:09:08 -05:00
|
|
|
{
|
|
|
|
Name: "build-frontend-packages",
|
|
|
|
Usage: "Build front-end packages",
|
|
|
|
ArgsUsage: "[version]",
|
|
|
|
Action: BuildFrontendPackages,
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&buildIDFlag,
|
|
|
|
&noInstallDepsFlag,
|
|
|
|
},
|
|
|
|
},
|
2022-09-02 10:02:10 -05:00
|
|
|
{
|
|
|
|
Name: "e2e-tests",
|
|
|
|
Usage: "Run Grafana e2e tests",
|
|
|
|
Action: EndToEndTests,
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&triesFlag,
|
|
|
|
&cli.IntFlag{
|
|
|
|
Name: "port",
|
|
|
|
Value: 3001,
|
|
|
|
Usage: "Specify the server port",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "suite",
|
|
|
|
Usage: "Specify the end-to-end tests suite to be used",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "host",
|
|
|
|
Value: "grafana-server",
|
|
|
|
Usage: "Specify the server host",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-08-10 09:29:51 -05:00
|
|
|
{
|
|
|
|
Name: "build-frontend",
|
|
|
|
Usage: "Build front-end artifacts",
|
|
|
|
ArgsUsage: "[version]",
|
|
|
|
Action: ArgCountWrapper(1, BuildFrontend),
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&buildIDFlag,
|
|
|
|
},
|
|
|
|
},
|
2022-08-09 01:43:28 -05:00
|
|
|
{
|
|
|
|
Name: "build-docker",
|
|
|
|
Usage: "Build Grafana Docker images",
|
|
|
|
Action: ArgCountWrapper(1, BuildDocker),
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&cli.BoolFlag{
|
|
|
|
Name: "ubuntu",
|
|
|
|
Usage: "Use Ubuntu base image",
|
|
|
|
},
|
|
|
|
&cli.BoolFlag{
|
|
|
|
Name: "shouldSave",
|
|
|
|
Usage: "Should save docker image to tarball",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "archs",
|
|
|
|
Value: strings.Join(docker.AllArchs, ","),
|
|
|
|
Usage: "Comma separated architectures to build",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-08-04 11:39:36 -05:00
|
|
|
{
|
2022-08-08 10:36:13 -05:00
|
|
|
Name: "shellcheck",
|
|
|
|
Usage: "Run shellcheck on shell scripts",
|
|
|
|
Action: Shellcheck,
|
2022-08-09 01:43:28 -05:00
|
|
|
},
|
|
|
|
{
|
2022-08-04 11:39:36 -05:00
|
|
|
Name: "build-plugins",
|
|
|
|
Usage: "Build internal plug-ins",
|
|
|
|
Action: ArgCountWrapper(1, BuildInternalPlugins),
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&signingAdminFlag,
|
|
|
|
&signFlag,
|
|
|
|
&noInstallDepsFlag,
|
|
|
|
},
|
|
|
|
},
|
2022-09-12 13:28:08 -05:00
|
|
|
{
|
|
|
|
Name: "publish-metrics",
|
|
|
|
Usage: "Publish a set of metrics from stdin",
|
|
|
|
ArgsUsage: "<api-key>",
|
|
|
|
Action: ArgCountWrapper(1, PublishMetrics),
|
|
|
|
},
|
2022-09-14 00:59:18 -05:00
|
|
|
{
|
|
|
|
Name: "verify-drone",
|
|
|
|
Usage: "Verify Drone configuration",
|
|
|
|
Action: VerifyDrone,
|
|
|
|
},
|
2022-09-13 05:26:24 -05:00
|
|
|
{
|
|
|
|
Name: "export-version",
|
|
|
|
Usage: "Exports version in dist/grafana.version",
|
|
|
|
Action: ExportVersion,
|
|
|
|
},
|
2022-09-23 11:49:07 -05:00
|
|
|
{
|
|
|
|
Name: "package",
|
|
|
|
Usage: "Package one or more Grafana variants",
|
|
|
|
ArgsUsage: "[version]",
|
|
|
|
Action: ArgCountWrapper(1, Package),
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&variantsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&buildIDFlag,
|
|
|
|
&signFlag,
|
|
|
|
},
|
|
|
|
},
|
2022-09-15 03:06:43 -05:00
|
|
|
{
|
|
|
|
Name: "store-storybook",
|
|
|
|
Usage: "Integrity check for storybook build",
|
|
|
|
Action: StoreStorybook,
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "deployment",
|
|
|
|
Usage: "Kind of deployment (e.g. canary/latest)",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-09-19 03:19:31 -05:00
|
|
|
{
|
2022-09-19 09:17:56 -05:00
|
|
|
Name: "artifacts",
|
|
|
|
Usage: "Handle Grafana artifacts",
|
2022-09-19 03:19:31 -05:00
|
|
|
Subcommands: cli.Commands{
|
|
|
|
{
|
2022-09-19 09:17:56 -05:00
|
|
|
Name: "docker",
|
|
|
|
Usage: "Handle Grafana Docker images",
|
|
|
|
Subcommands: cli.Commands{
|
|
|
|
{
|
|
|
|
Name: "fetch",
|
|
|
|
Usage: "Fetch Grafana Docker images",
|
|
|
|
ArgsUsage: "[version]",
|
|
|
|
Action: ArgCountWrapper(1, FetchImages),
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&editionFlag,
|
|
|
|
},
|
|
|
|
},
|
2022-09-19 03:19:31 -05:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-09-29 06:32:42 -05:00
|
|
|
{
|
|
|
|
Name: "publish",
|
|
|
|
Usage: "Publish packages to Grafana com and repositories",
|
|
|
|
Subcommands: cli.Commands{
|
|
|
|
{
|
|
|
|
Name: "packages",
|
|
|
|
Usage: "publish Grafana packages",
|
|
|
|
ArgsUsage: "[version]",
|
|
|
|
Action: PublishPackages,
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&jobsFlag,
|
|
|
|
&editionFlag,
|
|
|
|
&buildIDFlag,
|
|
|
|
&dryRunFlag,
|
|
|
|
&gcpKeyFlag,
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "packages-bucket",
|
2022-10-03 07:29:32 -05:00
|
|
|
Value: config.PublicBucket,
|
2022-09-29 06:32:42 -05:00
|
|
|
Usage: "Google Cloud Storage Debian database bucket",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "deb-db-bucket",
|
|
|
|
Value: packaging.DefaultDebDBBucket,
|
|
|
|
Usage: "Google Cloud Storage Debian database bucket",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "deb-repo-bucket",
|
|
|
|
Value: packaging.DefaultDebRepoBucket,
|
|
|
|
Usage: "Google Cloud Storage Debian repo bucket",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "rpm-repo-bucket",
|
|
|
|
Value: packaging.DefaultRPMRepoBucket,
|
|
|
|
Usage: "Google Cloud Storage RPM repo bucket",
|
|
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "ttl",
|
|
|
|
Value: packaging.DefaultTTLSeconds,
|
|
|
|
Usage: "Cache time to live for uploaded packages",
|
|
|
|
},
|
|
|
|
&cli.BoolFlag{
|
|
|
|
Name: "simulate-release",
|
|
|
|
Usage: "Only simulate creating release at grafana.com",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-10-03 06:14:24 -05:00
|
|
|
{
|
|
|
|
Name: "grafana-com",
|
|
|
|
Usage: "Publish packages to grafana.com",
|
|
|
|
Action: GrafanaCom,
|
|
|
|
Flags: []cli.Flag{
|
|
|
|
&editionFlag,
|
|
|
|
&buildIDFlag,
|
|
|
|
&dryRunFlag,
|
|
|
|
&cli.StringFlag{
|
|
|
|
Name: "src-bucket",
|
|
|
|
Value: "grafana-downloads",
|
|
|
|
Usage: "Google Cloud Storage bucket",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-09-29 06:32:42 -05:00
|
|
|
},
|
|
|
|
},
|
2022-07-28 09:11:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
if err := app.Run(os.Args); err != nil {
|
|
|
|
log.Fatalln(err)
|
|
|
|
}
|
|
|
|
}
|