makefile_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package e2e
  2. import (
  3. "os"
  4. "os/exec"
  5. "strings"
  6. "testing"
  7. )
  8. func TestV2MakeTargetCanSkipKubernetesProviderBuild(t *testing.T) {
  9. t.Parallel()
  10. defaultDryRun := runMakeDryRun(t, "VERSION=test-version")
  11. if !strings.Contains(defaultDryRun, "docker.build.provider.kubernetes") {
  12. t.Fatalf("expected default test.v2 dry-run to build the kubernetes provider image, output:\n%s", defaultDryRun)
  13. }
  14. if !strings.Contains(defaultDryRun, "ghcr.io/external-secrets/provider-kubernetes:test-version") {
  15. t.Fatalf("expected default test.v2 dry-run to still load the kubernetes provider image, output:\n%s", defaultDryRun)
  16. }
  17. skippedDryRun := runMakeDryRun(t, "VERSION=test-version", "SKIP_PROVIDER_KUBERNETES_BUILD=true")
  18. if strings.Contains(skippedDryRun, "docker.build.provider.kubernetes") {
  19. t.Fatalf("expected skipped test.v2 dry-run to omit the kubernetes provider build, output:\n%s", skippedDryRun)
  20. }
  21. if !strings.Contains(skippedDryRun, "ghcr.io/external-secrets/provider-kubernetes:test-version") {
  22. t.Fatalf("expected skipped test.v2 dry-run to still load the kubernetes provider image, output:\n%s", skippedDryRun)
  23. }
  24. }
  25. func runMakeDryRun(t *testing.T, extraArgs ...string) string {
  26. t.Helper()
  27. args := append([]string{"-n", "test.v2"}, extraArgs...)
  28. cmd := exec.Command("make", args...)
  29. cmd.Dir = "."
  30. cmd.Env = os.Environ()
  31. output, err := cmd.CombinedOutput()
  32. if err != nil {
  33. t.Fatalf("make dry-run failed: %v\n%s", err, string(output))
  34. }
  35. return string(output)
  36. }