* go mod tidy; go work sync * CI: Add release-pr workflow (#89005) * Add release-pr workflow * update CODEOWNERS * CI: Trigger release pr workflow when a release is completed (#89062) * CI: Add bump-version action to the release PR workflow (#89491) * Automation: Verify release artifacts on grafana.com (#89197) * baldm0mma/verify_release/ create verify_release_for_download function * baldm0mma/verify_release/ add name, image, env * baldm0mma/verify_release/ add initial commands * baldm0mma/verify_release/ add deps? * baldm0mma/verify_release/ update location * baldm0mma/verify_release/ add anno to lib-star * bald0mma/verify_release/ update func name to verify_grafanacom_step * baldm0mma/verify_release/ add verify shell script * baldm0mma/verify_release/ add script content, first attempt * baldm0mma/verify_release/ add node image to verify_grafanacom_step * baldm0mma/verify_release/ add gcom secret note * baldm0mma/verify_release/ add sudo to apt-get * baldm0mma/verify_release/ add anno * baldm0mma/verify_release/ add anno to secrets * baldm0mma/verify_release/ update commands to reflect node env image * baldm0mma/verify_release/ update annos * baldm0mma/verify_release/ update tag variable * baldm0mma/verify release/ add whitespace * baldm0mma/verify_releases/ update with no bash loops * baldm0mma/verify_release/ update exit logic * baldm0mma/verify_release/ remove annos * baldm0mma/verify_releasse/ resign and build yml * baldm0mma/verify_release/ remove annos * baldm0mma/verify_release/ update signature * baldm0mma/verify_release/ download curl * baldm0mma/verify_release/ remove temp key folder removal * baldm0mma/verify_release/ account for artifact download time * baldm0mma/verify_release/ add anno * baldm0mma/verify_release/ update location * baldm0mma/verify_release/ update script * baldm0mma/verify_release/ make drone * baldm0mma/verify_release/ update script for oss or ent * baldm0mma/verify_release/ add promotion option * baldm0mma/verify_release/ make drone * Update scripts/drone/events/release.star Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * Update scripts/drone/steps/lib.star Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * Update scripts/drone/steps/lib.star Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * baldm0mma/verify_release/ update drone * Update scripts/drone/events/release.star Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * baldm0mma/verify_release/ update drone * Update scripts/drone/steps/lib.star Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * baldm0mma/update drone * baldm0mma/verify_release/ update path * baldm0mma/verify_release/ make drone * baldm0mma/update drone * Apply suggestions from code review Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * baldm0mma/verify_release/ update for loop to account for failure * baldm0mma/verify_release/ make drone * baldm0mma/verify_release/ make format-drone * baldm0mma/verify_release/ rem unused var --------- Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com> * use go 1.21.10 * use 1.21.10 in pkg/build * upgrade to go 1.22.4 * upgrade swagger * swagger-gen * gen openapi3.json * allow grpc.dial * fix .bingo/README.md formatting --------- Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
package plugins
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
|
|
"github.com/grafana/grafana/pkg/build/config"
|
|
"github.com/grafana/grafana/pkg/build/errutil"
|
|
"github.com/grafana/grafana/pkg/build/fsutil"
|
|
"github.com/grafana/grafana/pkg/build/syncutil"
|
|
)
|
|
|
|
type PluginSigningMode = int
|
|
|
|
// BuildPlugins builds internal plugins.
|
|
// The built plugins are placed in plugins-bundled/dist/.
|
|
func Build(ctx context.Context, grafanaDir string, p syncutil.WorkerPool, g *errutil.Group, verMode *config.BuildConfig) error {
|
|
log.Printf("Building plugins in %q...", grafanaDir)
|
|
|
|
root := filepath.Join(grafanaDir, "plugins-bundled", "internal")
|
|
fis, err := os.ReadDir(root)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for i := range fis {
|
|
fi := fis[i]
|
|
if !fi.IsDir() {
|
|
continue
|
|
}
|
|
|
|
dpath := filepath.Join(root, fi.Name())
|
|
|
|
p.Schedule(g.Wrap(func() error {
|
|
log.Printf("Building plugin %q...", dpath)
|
|
|
|
cmd := exec.Command("yarn", "build")
|
|
cmd.Dir = dpath
|
|
if output, err := cmd.CombinedOutput(); err != nil {
|
|
return fmt.Errorf("yarn build failed: %s", output)
|
|
}
|
|
|
|
dstPath := filepath.Join("plugins-bundled", "dist", fi.Name())
|
|
if err := fsutil.CopyRecursive(filepath.Join(dpath, "dist"), dstPath); err != nil {
|
|
return err
|
|
}
|
|
if !verMode.PluginSignature.Sign {
|
|
return nil
|
|
}
|
|
|
|
return BuildManifest(ctx, dstPath, verMode.PluginSignature.AdminSign)
|
|
}))
|
|
}
|
|
|
|
if err := g.Wait(); err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Printf("Built all plug-ins successfully!")
|
|
|
|
return nil
|
|
}
|