aboutsummaryrefslogtreecommitdiffstats
path: root/syz-ci/manager.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2023-05-12 13:42:45 +0200
committerAleksandr Nogikh <wp32pw@gmail.com>2023-05-15 10:44:50 +0200
commite9f324cf6d085e7e9b87302e5f9df84199b240b0 (patch)
tree11a94642600f97bf69f76d794660abc6846c9040 /syz-ci/manager.go
parentb8bae4ab4a12912a6fd2f6882c860a79d803bd2b (diff)
syz-ci: optionally publish GCS objects
Earlier `syz-ci: don't publish uploaded files` commit completely disabled the GCS object publishing after each object. However, it turns out that otherwise the objects quickly lose the `public to internet` flag. Make the option configurable.
Diffstat (limited to 'syz-ci/manager.go')
-rw-r--r--syz-ci/manager.go15
1 files changed, 9 insertions, 6 deletions
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index 71bd35980..7ec7ba1cc 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -791,7 +791,7 @@ func (mgr *Manager) uploadCoverReport() error {
}
defer resp.Body.Close()
if directUpload {
- return uploadFile(mgr.cfg.CoverUploadPath, mgr.name+".html", resp.Body)
+ return mgr.uploadFile(mgr.cfg.CoverUploadPath, mgr.name+".html", resp.Body)
}
// Upload via the asset storage.
newAsset, err := mgr.storage.UploadBuildAsset(resp.Body, mgr.name+".html",
@@ -812,10 +812,10 @@ func (mgr *Manager) uploadCorpus() error {
return err
}
defer f.Close()
- return uploadFile(mgr.cfg.CorpusUploadPath, mgr.name+"-corpus.db", f)
+ return mgr.uploadFile(mgr.cfg.CorpusUploadPath, mgr.name+"-corpus.db", f)
}
-func uploadFile(dstPath, name string, file io.Reader) error {
+func (mgr *Manager) uploadFile(dstPath, name string, file io.Reader) error {
URL, err := url.Parse(dstPath)
if err != nil {
return fmt.Errorf("failed to parse upload path: %v", err)
@@ -824,17 +824,17 @@ func uploadFile(dstPath, name string, file io.Reader) error {
URLStr := URL.String()
log.Logf(0, "uploading %v to %v", name, URLStr)
if strings.HasPrefix(URLStr, "gs://") {
- return uploadFileGCS(strings.TrimPrefix(URLStr, "gs://"), file)
+ return uploadFileGCS(strings.TrimPrefix(URLStr, "gs://"), file, mgr.cfg.PublishGCS)
}
if strings.HasPrefix(URLStr, "http://") ||
strings.HasPrefix(URLStr, "https://") {
return uploadFileHTTPPut(URLStr, file)
}
// Use GCS as default to maintain backwards compatibility.
- return uploadFileGCS(URLStr, file)
+ return uploadFileGCS(URLStr, file, mgr.cfg.PublishGCS)
}
-func uploadFileGCS(URL string, file io.Reader) error {
+func uploadFileGCS(URL string, file io.Reader, publish bool) error {
GCS, err := gcs.NewClient()
if err != nil {
return fmt.Errorf("failed to create GCS client: %v", err)
@@ -851,6 +851,9 @@ func uploadFileGCS(URL string, file io.Reader) error {
if err := gcsWriter.Close(); err != nil {
return fmt.Errorf("failed to close gcs writer: %v", err)
}
+ if publish {
+ return GCS.Publish(URL)
+ }
return nil
}