deploy: Don't treat a NotFound response for Delete as a fatal error.
authorRobert van Gent <rvangent@google.com>
Thu, 29 Apr 2021 03:32:19 +0000 (20:32 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 29 Apr 2021 05:07:01 +0000 (07:07 +0200)
deploy/deploy.go

index c75461750247a530676486d2788917d3741d0df1..96fecdc077e7ea6afb9da786788e0e02d8c49ac0 100644 (file)
@@ -45,6 +45,7 @@ import (
        _ "gocloud.dev/blob/fileblob" // import
        _ "gocloud.dev/blob/gcsblob"  // import
        _ "gocloud.dev/blob/s3blob"   // import
+       "gocloud.dev/gcerrors"
 )
 
 // Deployer supports deploying the site to target cloud providers.
@@ -238,9 +239,13 @@ func (d *Deployer) Deploy(ctx context.Context) error {
                        go func(del string) {
                                jww.INFO.Printf("Deleting %s...\n", del)
                                if err := bucket.Delete(ctx, del); err != nil {
-                                       errMu.Lock()
-                                       defer errMu.Unlock()
-                                       errs = append(errs, err)
+                                       if gcerrors.Code(err) == gcerrors.NotFound {
+                                               jww.WARN.Printf("Failed to delete %q because it wasn't found: %v", del, err)
+                                       } else {
+                                               errMu.Lock()
+                                               defer errMu.Unlock()
+                                               errs = append(errs, err)
+                                       }
                                }
                                <-sem
                        }(del)