in internal/testers/ginkgov1/package.go [43:81]
func (t *Tester) AcquireTestPackage() error {
// first, get the name of the latest release (e.g. v1.20.0-alpha.0)
if t.TestPackageVersion == "" {
cmd := exec.Command(
"gsutil",
"cat",
fmt.Sprintf("gs://%s/%s/%s", t.TestPackageBucket, t.TestPackageDir, t.TestPackageMarker),
)
lines, err := exec.OutputLines(cmd)
if err != nil {
return fmt.Errorf("failed to get latest release name: %s", err)
}
if len(lines) == 0 {
return fmt.Errorf("getting latest release name had no output")
}
t.TestPackageVersion = lines[0]
klog.V(1).Infof("Test package version was not specified. Defaulting to version from %s: %s", t.TestPackageMarker, t.TestPackageVersion)
}
releaseTar := fmt.Sprintf("kubernetes-test-%s-%s.tar.gz", runtime.GOOS, runtime.GOARCH)
downloadDir, err := os.UserCacheDir()
if err != nil {
return fmt.Errorf("failed to get user cache directory: %v", err)
}
downloadPath := filepath.Join(downloadDir, releaseTar)
if err := t.ensureReleaseTar(downloadPath, releaseTar); err != nil {
return err
}
if err := t.extractBinaries(downloadPath); err != nil {
return err
}
t.kubectlPath = filepath.Join(artifacts.RunDir(), "kubectl")
return t.ensureKubectl(t.kubectlPath)
}