[Enterprise] Consolidate extensions folders and keep them around (#98486)

* WIP: copy approach

* Fix package name

* Do not ignore .keep for frontend extensions

* Add keep file for frontend extensions

* Tweak makefile to generate enterprise swagger or not

* Remove duplicate imports

* Add build extensions

* Add CMD extensions

* Add keep to e2e extensions

* Add .keep

* Reduce file structure changes

* Ignore boring crypto

* Add e2e extensions keep file

* Remove enterprise file

* Update .gitignore

* Move things around

* Update git ignore

* Consolidate backend extensions folder

* Move enterprise deps

* Update comment

* Do not use build tags

* Ignore setting enterprise

* Revert changes in makefile

* Revert package changes

* Add back extensions main.go

* Update git ignore

* Ignore spanner tests

* Trick ignore files only by git

* Add .ignore file to CODEOWNERS for frontend-ops

* Fix issue with noisy duplicate targets
pull/100813/head^2
Roberto Jiménez Sánchez 4 months ago committed by GitHub
parent 2014d27def
commit 8edfff1bba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      .bingo/Variables.mk
  2. 1
      .github/CODEOWNERS
  3. 16
      .gitignore
  4. 22
      .ignore
  5. 0
      e2e/extensions/.keep
  6. 4
      pkg/build/cmd/flags.go
  7. 11
      pkg/build/cmd/main.go
  8. 6
      pkg/build/cmd/publishaws_test.go
  9. 3
      pkg/build/cmd/publishgithub_test.go
  10. 2
      pkg/build/cmd/util/argcount_wrapper.go
  11. 8
      pkg/build/cmd/util/flags.go
  12. 0
      pkg/extensions/.keep
  13. 0
      public/app/extensions/.keep

@ -5,6 +5,10 @@ GOPATH ?= $(shell go env GOPATH)
GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
GO ?= $(shell which go)
# Add this near the top of the file, after the initial variable definitions
ifndef VARIABLES_MK
VARIABLES_MK := 1
# Below generated variables ensure that every time a tool under each variable is invoked, the correct version
# will be used; reinstalling only if needed.
# For example for bra variable:
@ -65,3 +69,4 @@ $(SWAGGER): $(BINGO_DIR)/swagger.mod
@echo "(re)installing $(GOBIN)/swagger-v0.30.6-0.20240310114303-db51e79a0e37"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=swagger.mod -o=$(GOBIN)/swagger-v0.30.6-0.20240310114303-db51e79a0e37 "github.com/go-swagger/go-swagger/cmd/swagger"
endif

@ -444,6 +444,7 @@
/.betterer.eslint.config.js @grafana/frontend-ops
/.gitattributes @grafana/frontend-ops
/.gitignore @grafana/frontend-ops
/.ignore @grafana/frontend-ops
/.nvmrc @grafana/frontend-ops
/.prettierignore @grafana/frontend-ops
/.yarn @grafana/frontend-ops

16
.gitignore vendored

@ -40,6 +40,7 @@ __debug_bin*
# This is the new place of the block, but I leave the previous here for a while
/devenv/docker/blocks/auth/saml-enterprise
/devenv/docker/blocks/auth/signer
/devenv/docker/blocks/spanner_tests
/tmp
tools/phantomjs/phantomjs
@ -103,14 +104,18 @@ profile.cov
/pkg/cmd/grafana-cli/grafana-cli
/pkg/cmd/grafana-server/grafana-server
/pkg/cmd/grafana-server/debug
/pkg/extensions/*
/pkg/build/cmd/artifactspage.go
/pkg/build/cmd/artifactspage.tmpl.html
/pkg/build/cmd/exportversion.go
/pkg/server/wireexts_enterprise.go
# Extensions
/pkg/cmd/grafana-cli/runner/wireexts_enterprise.go
/pkg/server/wireexts_enterprise.go
/pkg/build/cmd/enterprise.go
/pkg/extensions/*
!/pkg/extensions/.keep
!/pkg/extensions/main.go
/public/app/extensions
!/public/app/extensions/.keep
debug.test
/examples/*/dist
/packaging/**/*.rpm
@ -170,6 +175,7 @@ compilation-stats.json
/e2e/benchmarks/**/results
/e2e/build_results.zip
/e2e/extensions
!/e2e/extensions/.keep
/e2e/extensions-suite
/test-results/
/playwright-report/

@ -0,0 +1,22 @@
# This is a trick to ignore files only by git but not by other tools
!/public/app/extensions
!/pkg/extensions/*
!/pkg/cmd/grafana-cli/runner/wireexts_enterprise.go
!/pkg/server/wireexts_enterprise.go
!/pkg/build/cmd/enterprise.go
!/pkg/extensions/*
# Enterprise emails
!/emails/templates/enterprise_*
!/public/emails/enterprise_*
# Enterprise reporting fonts
!/public/fonts/dejavu
# Enterprise devenv
!/devenv/docker/blocks/grafana-enterprise
!/devenv/docker/blocks/saml-enterprise
# This is the new place of the block, but I leave the previous here for a while
!/devenv/docker/blocks/auth/saml-enterprise
!/devenv/docker/blocks/auth/signer
!/devenv/docker/blocks/spanner_tests

@ -21,10 +21,6 @@ var (
Usage: "Specify number of tries before failing",
Value: 1,
}
dryRunFlag = cli.BoolFlag{
Name: "dry-run",
Usage: "Only simulate actions",
}
tagFlag = cli.StringFlag{
Name: "tag",
Usage: "Grafana version tag",

@ -5,6 +5,7 @@ import (
"os"
"github.com/grafana/grafana/pkg/build"
"github.com/grafana/grafana/pkg/build/cmd/util"
"github.com/urfave/cli/v2"
)
@ -66,7 +67,7 @@ func main() {
Name: "publish-metrics",
Usage: "Publish a set of metrics from stdin",
ArgsUsage: "<api-key>",
Action: MaxArgCountWrapper(1, PublishMetrics),
Action: util.MaxArgCountWrapper(1, PublishMetrics),
},
{
Name: "verify-drone",
@ -178,7 +179,7 @@ func main() {
Name: "fetch",
Usage: "Fetch Grafana Docker images",
ArgsUsage: "[version]",
Action: MaxArgCountWrapper(1, FetchImages),
Action: util.MaxArgCountWrapper(1, FetchImages),
Flags: []cli.Flag{
&editionFlag,
},
@ -229,7 +230,7 @@ func main() {
Flags: []cli.Flag{
&editionFlag,
&buildIDFlag,
&dryRunFlag,
&util.DryRunFlag,
&cli.StringFlag{
Name: "src-bucket",
Value: "grafana-downloads",
@ -242,7 +243,7 @@ func main() {
Usage: "Publish packages to GitHub releases",
Action: PublishGithub,
Flags: []cli.Flag{
&dryRunFlag,
&util.DryRunFlag,
&cli.StringFlag{
Name: "path",
Usage: "Path to the asset to be published",
@ -267,7 +268,7 @@ func main() {
Usage: "Publish image to AWS Marketplace releases",
Action: PublishAwsMarketplace,
Flags: []cli.Flag{
&dryRunFlag,
&util.DryRunFlag,
&cli.StringFlag{
Name: "version",
Usage: "Release version (default from metadata)",

@ -15,6 +15,7 @@ import (
"github.com/aws/aws-sdk-go/service/ecr"
"github.com/aws/aws-sdk-go/service/marketplacecatalog"
"github.com/docker/docker/api/types/image"
"github.com/grafana/grafana/pkg/build/cmd/util"
"github.com/stretchr/testify/assert"
"github.com/urfave/cli/v2"
)
@ -138,7 +139,7 @@ func setupPublishAwsMarketplaceTests(t *testing.T) *cli.App {
testApp := cli.NewApp()
testApp.Action = PublishAwsMarketplace
testApp.Flags = []cli.Flag{
&dryRunFlag,
&util.DryRunFlag,
&cli.StringFlag{
Name: "version",
Usage: "Release version (default from metadata)",
@ -171,9 +172,11 @@ type mockAwsMarketplaceDocker struct {
func (m *mockAwsMarketplaceDocker) ImagePull(ctx context.Context, refStr string, options image.PullOptions) (io.ReadCloser, error) {
return io.NopCloser(bytes.NewReader([]byte(""))), m.ImagePullError
}
func (m *mockAwsMarketplaceDocker) ImageTag(ctx context.Context, source string, target string) error {
return m.ImageTagError
}
func (m *mockAwsMarketplaceDocker) ImagePush(ctx context.Context, image string, options image.PushOptions) (io.ReadCloser, error) {
return io.NopCloser(bytes.NewReader([]byte(""))), m.ImagePushError
}
@ -202,6 +205,7 @@ func (m *mockAwsMarketplaceCatalog) DescribeEntityWithContext(ctx context.Contex
EntityIdentifier: aws.String("productid"),
}, m.DescribeEntityWithContextError
}
func (m *mockAwsMarketplaceCatalog) StartChangeSetWithContext(ctx context.Context, input *marketplacecatalog.StartChangeSetInput, opts ...request.Option) (*marketplacecatalog.StartChangeSetOutput, error) {
return &marketplacecatalog.StartChangeSetOutput{}, m.StartChangeSetWithContextError
}

@ -10,6 +10,7 @@ import (
"testing"
"github.com/google/go-github/github"
"github.com/grafana/grafana/pkg/build/cmd/util"
"github.com/stretchr/testify/assert"
"github.com/urfave/cli/v2"
)
@ -158,7 +159,7 @@ func setupPublishGithubTests(t *testing.T) (*cli.App, string) {
testApp := cli.NewApp()
testApp.Action = PublishGithub
testApp.Flags = []cli.Flag{
&dryRunFlag,
&util.DryRunFlag,
&cli.StringFlag{
Name: "path",
Required: true,

@ -1,4 +1,4 @@
package main
package util
import "github.com/urfave/cli/v2"

@ -0,0 +1,8 @@
package util
import "github.com/urfave/cli/v2"
var DryRunFlag = cli.BoolFlag{
Name: "dry-run",
Usage: "Only simulate actions",
}
Loading…
Cancel
Save