Zip CT chromium build before storing in GS and unzip when downloading
Bug: skia:7043
Change-Id: If03a99b0351b726bdfa4aea827b543a325ef678d
Reviewed-on: https://skia-review.googlesource.com/49120
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
diff --git a/ct/go/util/chromium_builds.go b/ct/go/util/chromium_builds.go
index 7707264..2d4e3c8 100644
--- a/ct/go/util/chromium_builds.go
+++ b/ct/go/util/chromium_builds.go
@@ -124,7 +124,7 @@
return "", "", fmt.Errorf("Could not create GCS object: %s", err)
}
if err := uploadChromiumBuild(filepath.Join(chromiumBuildDir, "src", "out", "Release"), filepath.Join(CHROMIUM_BUILDS_DIR_NAME, googleStorageDirName), targetPlatform, gs); err != nil {
- return "", "", fmt.Errorf("There was an error uploaded the chromium build dir %s: %s", filepath.Join(chromiumBuildDir, "src", "out", "Release"), err)
+ return "", "", fmt.Errorf("There was an error uploading the chromium build dir %s: %s", filepath.Join(chromiumBuildDir, "src", "out", "Release"), err)
}
// Create and upload another chromium build if the uploadSingleBuild flag is false. This build
@@ -197,7 +197,13 @@
}
defer util.Rename(objTmpDir, objDir)
}
- return gs.UploadDir(localUploadDir, gsDir, true)
+
+ zipFilePath := filepath.Join(ChromiumBuildsDir, CHROMIUM_BUILD_ZIP_NAME)
+ defer util.Remove(zipFilePath)
+ if err := util.ZipIt(zipFilePath, localUploadDir); err != nil {
+ return fmt.Errorf("Error when zipping %s to %s: %s", localUploadDir, zipFilePath, err)
+ }
+ return gs.UploadFile(CHROMIUM_BUILD_ZIP_NAME, ChromiumBuildsDir, gsDir)
}
func buildChromium(chromiumDir, targetPlatform string, useWhitelistedFonts bool) error {
diff --git a/ct/go/util/constants.go b/ct/go/util/constants.go
index 8b4ec58..f867140 100644
--- a/ct/go/util/constants.go
+++ b/ct/go/util/constants.go
@@ -30,6 +30,7 @@
CHROMIUM_PERF_TASKS_DIR_NAME = "chromium_perf_runs"
CHROMIUM_ANALYSIS_TASKS_DIR_NAME = "chromium_analysis_runs"
FIX_ARCHIVE_TASKS_DIR_NAME = "fix_archive_runs"
+ CHROMIUM_BUILD_ZIP_NAME = "chromium_build.zip"
// Limit the number of times CT tries to get a remote file before giving up.
MAX_URI_GET_TRIES = 4
diff --git a/ct/go/util/gs.go b/ct/go/util/gs.go
index 40f710f..ad2ac60 100644
--- a/ct/go/util/gs.go
+++ b/ct/go/util/gs.go
@@ -208,6 +208,13 @@
if err := gs.downloadRemoteDir(localDir, gsDir); err != nil {
return fmt.Errorf("Error downloading %s into %s: %s", gsDir, localDir, err)
}
+
+ // Unzip the build.
+ zipFilePath := filepath.Join(localDir, CHROMIUM_BUILD_ZIP_NAME)
+ if err := util.UnZip(localDir, zipFilePath); err != nil {
+ return fmt.Errorf("Error when unzipping %s: %s", zipFilePath, err)
+ }
+
// Downloaded chrome binary needs to be set as an executable.
util.LogErr(os.Chmod(filepath.Join(localDir, "chrome"), 0777))