CI: Move `upload-cdn` subcommand from `grabpl` (#58957)

Move upload-cdn from grabpl
This commit is contained in:
Dimitris Sotirakis 2022-11-18 15:37:18 +02:00 committed by GitHub
parent e823a90b82
commit e37fc888c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 92 additions and 9 deletions

View File

@ -1569,7 +1569,7 @@ steps:
repo:
- grafana/grafana
- commands:
- ./bin/grabpl upload-cdn --edition oss
- ./bin/build upload-cdn --edition oss
depends_on:
- grafana-server
environment:
@ -2135,7 +2135,7 @@ steps:
event:
- tag
- commands:
- ./bin/grabpl upload-cdn --edition oss
- ./bin/build upload-cdn --edition oss
depends_on:
- grafana-server
environment:
@ -2785,7 +2785,7 @@ steps:
- success
- failure
- commands:
- ./bin/grabpl upload-cdn --edition enterprise
- ./bin/build upload-cdn --edition enterprise
depends_on:
- package
environment:
@ -2826,7 +2826,7 @@ steps:
image: grafana/build-container:1.6.4
name: package-enterprise2
- commands:
- ./bin/grabpl upload-cdn --edition enterprise2
- ./bin/build upload-cdn --edition enterprise2
depends_on:
- package-enterprise2
environment:
@ -4156,7 +4156,7 @@ steps:
include:
- packages/grafana-ui/**
- commands:
- ./bin/grabpl upload-cdn --edition oss
- ./bin/build upload-cdn --edition oss
depends_on:
- grafana-server
environment:
@ -4764,7 +4764,7 @@ steps:
- success
- failure
- commands:
- ./bin/grabpl upload-cdn --edition enterprise
- ./bin/build upload-cdn --edition enterprise
depends_on:
- package
environment:
@ -4812,7 +4812,7 @@ steps:
image: grafana/build-container:1.6.4
name: package-enterprise2
- commands:
- ./bin/grabpl upload-cdn --edition enterprise2
- ./bin/build upload-cdn --edition enterprise2
depends_on:
- package-enterprise2
environment:
@ -5512,6 +5512,6 @@ kind: secret
name: packages_secret_access_key
---
kind: signature
hmac: 77ae647c9addfcd9966d462ca9967b85a87e18adfe0e9e0a2c6b1cf5d7f42493
hmac: bdde811590573d22162d8305ced15080e8b20f2180b7491891c461427810a4b3
...

View File

@ -96,6 +96,14 @@ func main() {
},
},
},
{
Name: "upload-cdn",
Usage: "Upload public/* to a cdn bucket",
Action: UploadCDN,
Flags: []cli.Flag{
&editionFlag,
},
},
{
Name: "shellcheck",
Usage: "Run shellcheck on shell scripts",

View File

@ -0,0 +1,75 @@
package main
import (
"fmt"
"log"
"os"
"path/filepath"
"github.com/grafana/grafana/pkg/build/config"
"github.com/grafana/grafana/pkg/build/gcloud/storage"
"github.com/urfave/cli/v2"
)
// UploadCDN implements the sub-command "upload-cdn".
func UploadCDN(c *cli.Context) error {
if c.NArg() > 0 {
if err := cli.ShowSubcommandHelp(c); err != nil {
return cli.NewExitError(err.Error(), 1)
}
return cli.NewExitError("", 1)
}
metadata, err := GenerateMetadata(c)
if err != nil {
return err
}
version := metadata.GrafanaVersion
if err != nil {
return cli.NewExitError(err.Error(), 1)
}
buildConfig, err := config.GetBuildConfig(metadata.ReleaseMode.Mode)
if err != nil {
return err
}
edition := os.Getenv("EDITION")
log.Printf("Uploading Grafana CDN Assets, version %s, %s edition...", version, edition)
editionPath := ""
switch config.Edition(edition) {
case config.EditionOSS:
editionPath = "grafana-oss"
case config.EditionEnterprise:
editionPath = "grafana"
case config.EditionEnterprise2:
editionPath = os.Getenv("ENTERPRISE2_CDN_PATH")
default:
panic(fmt.Sprintf("unrecognized edition %q", edition))
}
gcs, err := storage.New()
if err != nil {
return err
}
bucket := gcs.Bucket(buildConfig.Buckets.CDNAssets)
srcPath := buildConfig.Buckets.CDNAssetsDir
srcPath = filepath.Join(srcPath, editionPath, version)
if err := gcs.DeleteDir(c.Context, bucket, srcPath); err != nil {
return err
}
log.Printf("Successfully cleaned source: %s/%s\n", buildConfig.Buckets.CDNAssets, srcPath)
if err := gcs.CopyLocalDir(c.Context, "./public", bucket, srcPath, false); err != nil {
return err
}
log.Printf("Successfully uploaded cdn static assets to: %s/%s!\n", buildConfig.Buckets.CDNAssets, srcPath)
return nil
}

View File

@ -354,7 +354,7 @@ def upload_cdn_step(edition, ver_mode, trigger=None):
'PRERELEASE_BUCKET': from_secret(prerelease_bucket)
},
'commands': [
'./bin/grabpl upload-cdn --edition {}'.format(edition),
'./bin/build upload-cdn --edition {}'.format(edition),
],
}
if trigger and ver_mode in ("release-branch", "main"):