devtools/release_kube: add extra steps.
- Run prod service test after release is done.
- For staging release, write a latest file with version as its content.
Change-Id: I324a8a2199cebde2d92b8d99d58dac1c14c3a90f
diff --git a/jiri-test/internal/test/release_kube.go b/jiri-test/internal/test/release_kube.go
index c24a171..ff0adcf 100644
--- a/jiri-test/internal/test/release_kube.go
+++ b/jiri-test/internal/test/release_kube.go
@@ -9,12 +9,18 @@
"os"
"path/filepath"
"strings"
+ "time"
"v.io/jiri"
"v.io/jiri/collect"
"v.io/x/devtools/internal/test"
)
+var (
+ releaseKubeDefaultReleaseTestTimeout = time.Minute * 5
+ releaseKubeReleaseBucket = "gs://vanadium-release"
+)
+
func vanadiumReleaseKubeStaging(jirix *jiri.X, testName string, opts ...Opt) (_ *test.Result, e error) {
manifestPath := os.Getenv(manifestEnvVar)
if manifestPath == "" {
@@ -53,6 +59,42 @@
if err := s.Capture(jirix.Stdout(), jirix.Stderr()).Last(vprodupdaterBin, args...); err != nil {
return nil, newInternalError(err, "Run vprodupdater")
}
+
+ // Run "prod service test" to make sure everything is up and running.
+ hostname := "dev.staging.v.io"
+ if updateType == "production" {
+ hostname = "dev.v.io"
+ }
+ jiriTestArgs := []string{
+ "run",
+ fmt.Sprintf("--v23.namespace.root=/ns.%s:8101", hostname),
+ fmt.Sprintf("--blessings-root=%s", hostname),
+ "vanadium-prod-services-test",
+ }
+ if err := s.
+ Capture(jirix.Stdout(), jirix.Stderr()).
+ Timeout(releaseKubeDefaultReleaseTestTimeout).
+ Last("jiri-test", jiriTestArgs...); err != nil {
+ return nil, newInternalError(err, "Prod service test")
+ }
+
+ // For staging release, write a latest file with the version as
+ // its content.
+ if updateType == "staging" {
+ tmpDir, err := s.TempDir("", "")
+ if err != nil {
+ return nil, newInternalError(err, "Create tmp dir")
+ }
+ defer jirix.NewSeq().RemoveAll(tmpDir)
+ latestFile := filepath.Join(tmpDir, "latest")
+ gsutilArgs := []string{"-q", "cp", latestFile, fmt.Sprintf("%s/latest", releaseKubeReleaseBucket)}
+ if err := s.
+ WriteFile(latestFile, []byte(version), os.FileMode(0600)).
+ Last("gsutil", gsutilArgs...); err != nil {
+ return nil, newInternalError(err, "Write latest file")
+ }
+ }
+
return &test.Result{Status: test.Passed}, nil
}