Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

80 rader
1.8 KiB

  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "os"
  6. "os/signal"
  7. "path/filepath"
  8. "syscall"
  9. "github.com/QuantumNous/new-api/common"
  10. helpers "github.com/QuantumNous/new-api/test/e2e/helpers"
  11. )
  12. func main() {
  13. if err := run(); err != nil {
  14. fmt.Fprintln(os.Stderr, err)
  15. os.Exit(1)
  16. }
  17. }
  18. func run() error {
  19. repoRoot, err := os.Getwd()
  20. if err != nil {
  21. return fmt.Errorf("get working directory: %w", err)
  22. }
  23. artifactRoot := filepath.Join(repoRoot, "test-artifacts", "user-migration-e2e")
  24. if err := os.MkdirAll(artifactRoot, 0o755); err != nil {
  25. return fmt.Errorf("create artifact root: %w", err)
  26. }
  27. binaryPath, err := helpers.BuildBinary(repoRoot, artifactRoot)
  28. if err != nil {
  29. return fmt.Errorf("build api binary: %w", err)
  30. }
  31. env, err := helpers.PrepareEnvironment(repoRoot, artifactRoot, binaryPath, "playwright-ui")
  32. if err != nil {
  33. return fmt.Errorf("prepare playwright environment: %w", err)
  34. }
  35. defer func() {
  36. _ = env.Close()
  37. }()
  38. playwrightArtifactRoot := filepath.Join(artifactRoot, "playwright")
  39. if err := os.MkdirAll(playwrightArtifactRoot, 0o755); err != nil {
  40. return fmt.Errorf("create playwright artifact root: %w", err)
  41. }
  42. readyPayload, err := common.Marshal(map[string]any{
  43. "run_dir": env.RunDir,
  44. "base_url": env.Cluster.CN.BaseURL,
  45. "ov_base_url": env.Cluster.OV.BaseURL,
  46. })
  47. if err != nil {
  48. return fmt.Errorf("marshal ready payload: %w", err)
  49. }
  50. if err := os.WriteFile(
  51. filepath.Join(playwrightArtifactRoot, "server-ready.json"),
  52. readyPayload,
  53. 0o644,
  54. ); err != nil {
  55. return fmt.Errorf("write ready marker: %w", err)
  56. }
  57. fmt.Printf(
  58. "user migration ui e2e ready: cn=%s ov=%s run_dir=%s\n",
  59. env.Cluster.CN.BaseURL,
  60. env.Cluster.OV.BaseURL,
  61. env.RunDir,
  62. )
  63. ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
  64. defer stop()
  65. <-ctx.Done()
  66. return nil
  67. }