DEB/RPM Packages: Remove old package publishing steps (#58071)
* Remove old publish package steps * Don't ignore publish packaging failures
This commit is contained in:
@@ -5,9 +5,7 @@ import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/grafana/grafana/pkg/build/config"
|
||||
"github.com/grafana/grafana/pkg/build/docker"
|
||||
"github.com/grafana/grafana/pkg/build/packaging"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -175,48 +173,6 @@ func main() {
|
||||
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",
|
||||
Value: config.PublicBucket,
|
||||
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",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "grafana-com",
|
||||
Usage: "Publish packages to grafana.com",
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/grafana/grafana/pkg/build/config"
|
||||
"github.com/grafana/grafana/pkg/build/fsutil"
|
||||
"github.com/grafana/grafana/pkg/build/gcloud"
|
||||
"github.com/grafana/grafana/pkg/build/gpg"
|
||||
"github.com/grafana/grafana/pkg/build/packaging"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// PublishPackages implements the sub-command "publish-packages".
|
||||
func PublishPackages(c *cli.Context) error {
|
||||
if err := gcloud.ActivateServiceAccount(); err != nil {
|
||||
return fmt.Errorf("couldn't activate service account, err: %w", err)
|
||||
}
|
||||
|
||||
metadata, err := GenerateMetadata(c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
releaseMode, err := metadata.GetReleaseMode()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
dryRun := c.Bool("dry-run")
|
||||
simulateRelease := c.Bool("simulate-release")
|
||||
// Test release mode and dryRun imply simulateRelease
|
||||
if releaseMode.IsTest || dryRun {
|
||||
simulateRelease = true
|
||||
}
|
||||
|
||||
grafanaAPIKey := strings.TrimSpace(os.Getenv("GRAFANA_COM_API_KEY"))
|
||||
if grafanaAPIKey == "" {
|
||||
return cli.NewExitError("the environment variable GRAFANA_COM_API_KEY must be set", 1)
|
||||
}
|
||||
|
||||
edition := config.Edition(c.String("edition"))
|
||||
|
||||
// TODO: Verify config values
|
||||
cfg := packaging.PublishConfig{
|
||||
Config: config.Config{
|
||||
Version: metadata.GrafanaVersion,
|
||||
Bucket: c.String("packages-bucket"),
|
||||
DebDBBucket: c.String("deb-db-bucket"),
|
||||
DebRepoBucket: c.String("deb-repo-bucket"),
|
||||
RPMRepoBucket: c.String("rpm-repo-bucket"),
|
||||
},
|
||||
Edition: edition,
|
||||
ReleaseMode: releaseMode,
|
||||
GrafanaAPIKey: grafanaAPIKey,
|
||||
DryRun: dryRun,
|
||||
TTL: c.String("ttl"),
|
||||
SimulateRelease: simulateRelease,
|
||||
}
|
||||
if err := gpg.LoadGPGKeys(&cfg.Config); err != nil {
|
||||
return err
|
||||
}
|
||||
defer gpg.RemoveGPGFiles(cfg.Config)
|
||||
|
||||
// Only update package manager repos for releases.
|
||||
// In test release mode, the operator should configure different GCS buckets for the package repos,
|
||||
// so should be safe.
|
||||
if cfg.ReleaseMode.Mode == config.TagMode {
|
||||
workDir, err := fsutil.CreateTempDir("")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer func() {
|
||||
if err := os.RemoveAll(workDir); err != nil {
|
||||
log.Printf("Failed to remove temporary directory %q: %s\n", workDir, err.Error())
|
||||
}
|
||||
}()
|
||||
if err := updatePkgRepos(cfg, workDir); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
log.Println("Successfully published packages!")
|
||||
return nil
|
||||
}
|
||||
|
||||
// updatePkgRepos updates package manager repositories.
|
||||
func updatePkgRepos(cfg packaging.PublishConfig, workDir string) error {
|
||||
if err := gpg.Import(cfg.Config); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// If updating the Deb repo fails, still continue with the RPM repo, so we don't have to retry
|
||||
// both by hand
|
||||
debErr := packaging.UpdateDebRepo(cfg, workDir)
|
||||
if debErr != nil {
|
||||
log.Printf("Updating Deb repo failed: %s\n", debErr)
|
||||
}
|
||||
rpmErr := packaging.UpdateRPMRepo(cfg, workDir)
|
||||
if rpmErr != nil {
|
||||
log.Printf("Updating RPM repo failed: %s\n", rpmErr)
|
||||
}
|
||||
|
||||
if debErr != nil {
|
||||
return debErr
|
||||
}
|
||||
if rpmErr != nil {
|
||||
return rpmErr
|
||||
}
|
||||
|
||||
log.Println("Updated Deb and RPM repos successfully!")
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user