retry 10 times if upload release assets fails

[#121455813]

Signed-off-by: Yucheng Tu <ytu@pivotal.io>
This commit is contained in:
Evan Short
2016-06-14 10:28:26 -07:00
committed by Yucheng Tu
parent b0114ca8b4
commit 7c95978718
2 changed files with 109 additions and 8 deletions

View File

@@ -134,7 +134,27 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
fmt.Fprintf(c.writer, "uploading %s\n", filePath)
name := filepath.Base(filePath)
err = c.github.UploadReleaseAsset(*release, name, file)
for i := 0; i < 9 && err != nil; i++ {
assets, err := c.github.ListReleaseAssets(*release)
if err != nil {
return OutResponse{}, err
}
for _, asset := range assets {
if asset.Name != nil && *asset.Name == name {
err = c.github.DeleteReleaseAsset(asset)
if err != nil {
return OutResponse{}, err
}
break
}
}
err = c.github.UploadReleaseAsset(*release, name, file)
}
if err != nil {
return OutResponse{}, err
}