deploy: Do not call CDN service invalidation when executing a dry run deployment
authorJosé Moreira <zemanel@zemanel.eu>
Tue, 27 Oct 2020 19:41:15 +0000 (20:41 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 28 Oct 2020 10:19:40 +0000 (11:19 +0100)
Currently, if cache invalidation is enabled when running `hugo deploy --dryRun` with , the deployer does not take the dry run flag into consideration and triggers CloudFront/GoogleCloudCDN cache invalidation if any of those services are configured.

This change will instead print a feedback message if a dry run is in effect and quiet mode is not enabled.

Fixes #7884

deploy/deploy.go

index aac0bf354417836839347d34648c22a6538e4e9d..0c793bca0c93110f7b2b1142680f9cfc7b798de4 100644 (file)
@@ -262,17 +262,29 @@ func (d *Deployer) Deploy(ctx context.Context) error {
 
        if d.invalidateCDN {
                if d.target.CloudFrontDistributionID != "" {
-                       jww.FEEDBACK.Println("Invalidating CloudFront CDN...")
-                       if err := InvalidateCloudFront(ctx, d.target.CloudFrontDistributionID); err != nil {
-                               jww.FEEDBACK.Printf("Failed to invalidate CloudFront CDN: %v\n", err)
-                               return err
+                       if d.dryRun {
+                               if !d.quiet {
+                                       jww.FEEDBACK.Printf("[DRY RUN] Would invalidate CloudFront CDN with ID %s\n", d.target.CloudFrontDistributionID)
+                               }
+                       } else {
+                               jww.FEEDBACK.Println("Invalidating CloudFront CDN...")
+                               if err := InvalidateCloudFront(ctx, d.target.CloudFrontDistributionID); err != nil {
+                                       jww.FEEDBACK.Printf("Failed to invalidate CloudFront CDN: %v\n", err)
+                                       return err
+                               }
                        }
                }
                if d.target.GoogleCloudCDNOrigin != "" {
-                       jww.FEEDBACK.Println("Invalidating Google Cloud CDN...")
-                       if err := InvalidateGoogleCloudCDN(ctx, d.target.GoogleCloudCDNOrigin); err != nil {
-                               jww.FEEDBACK.Printf("Failed to invalidate Google Cloud CDN: %v\n", err)
-                               return err
+                       if d.dryRun {
+                               if !d.quiet {
+                                       jww.FEEDBACK.Printf("[DRY RUN] Would invalidate Google Cloud CDN with origin %s\n", d.target.GoogleCloudCDNOrigin)
+                               }
+                       } else {
+                               jww.FEEDBACK.Println("Invalidating Google Cloud CDN...")
+                               if err := InvalidateGoogleCloudCDN(ctx, d.target.GoogleCloudCDNOrigin); err != nil {
+                                       jww.FEEDBACK.Printf("Failed to invalidate Google Cloud CDN: %v\n", err)
+                                       return err
+                               }
                        }
                }
                jww.FEEDBACK.Println("Success!")