mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 18:44:54 +08:00

* Add e2e dagger pipeline * various-suite not various suite * upload videos dir * produce e2e videos even on failure * nil ref * sync doesn't return container * fix quotes * try without flags first? * try without quoting? * use two dashes in flags * update CODEOWNERS * make update-workspace * go work sync * make update-workspace * add newline
73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"dagger.io/dagger"
|
|
)
|
|
|
|
func main() {
|
|
var (
|
|
ctx = context.Background()
|
|
grafanaPath = flag.String("grafana-dir", ".", "Path to cloned grafana repo")
|
|
targzPath = flag.String("package", "grafana.tar.gz", "Path to grafana tar.gz package")
|
|
suite = flag.String("suite", "", "e2e suite name (used in arg to run-suite script)")
|
|
)
|
|
flag.Parse()
|
|
|
|
d, err := dagger.Connect(ctx)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
yarnCache := d.CacheVolume("yarn")
|
|
|
|
log.Println("grafana dir:", *grafanaPath)
|
|
log.Println("targz:", *targzPath)
|
|
|
|
grafana := d.Host().Directory(".", dagger.HostDirectoryOpts{
|
|
Exclude: []string{".git", "node_modules", "*.tar.gz"},
|
|
})
|
|
|
|
targz := d.Host().File("grafana.tar.gz")
|
|
|
|
svc, err := GrafanaService(ctx, d, GrafanaServiceOpts{
|
|
GrafanaDir: grafana,
|
|
GrafanaTarGz: targz,
|
|
YarnCache: yarnCache,
|
|
})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
videosDir := fmt.Sprintf("/src/e2e/%s/videos", *suite)
|
|
// *spec.ts.mp4
|
|
c := RunSuite(d, svc, grafana, yarnCache, *suite)
|
|
c, err = c.Sync(ctx)
|
|
if err != nil {
|
|
log.Fatalf("error running dagger: %s", err)
|
|
}
|
|
|
|
code, err := c.ExitCode(ctx)
|
|
if err != nil {
|
|
log.Fatalf("error getting exit code: %s", err)
|
|
}
|
|
|
|
log.Println("exit code:", code)
|
|
|
|
// No sync error; export the videos dir
|
|
if _, err := c.Directory(videosDir).Export(ctx, "videos"); err != nil {
|
|
log.Fatalf("error getting videos: %s", err)
|
|
}
|
|
|
|
if code != 0 {
|
|
log.Printf("tests failed: exit code %d", code)
|
|
}
|
|
|
|
os.Exit(code)
|
|
}
|