Skip to content

Commit c5f4e3f

Browse files
committed
fix: check only in compose mode for file changes
Swarm mode always force recreates stacks during deployment
1 parent 380b809 commit c5f4e3f

File tree

1 file changed

+29
-27
lines changed

1 file changed

+29
-27
lines changed

internal/docker/compose.go

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -459,33 +459,6 @@ func DeployStack(
459459
return fmt.Errorf("%s: %w", errMsg, err)
460460
}
461461

462-
hasChangedFiles, err := ProjectFilesHaveChanges(changedFiles, project)
463-
if err != nil {
464-
errMsg := "failed to check for changed project files"
465-
stackLog.Error(errMsg, logger.ErrAttr(err), slog.Group("compose_files", slog.Any("files", deployConfig.ComposeFiles)))
466-
467-
return fmt.Errorf("%s: %w", errMsg, err)
468-
}
469-
470-
hasChangedCompose, err := HasChangedComposeFiles(changedFiles, project)
471-
if err != nil {
472-
errMsg := "failed to check for changed compose files"
473-
stackLog.Error(errMsg, logger.ErrAttr(err), slog.Group("compose_files", slog.Any("files", deployConfig.ComposeFiles)))
474-
475-
return fmt.Errorf("%s: %w", errMsg, err)
476-
}
477-
478-
switch {
479-
case hasChangedFiles || (hasChangedCompose && triggerEvent == "poll"):
480-
deployConfig.ForceRecreate = true
481-
482-
stackLog.Debug("changed mounted files detected, forcing recreate of all services")
483-
case hasChangedCompose:
484-
stackLog.Debug("changed compose files detected, continue normal deployment")
485-
}
486-
487-
stackLog.Info("deploying stack", slog.Bool("forced", deployConfig.ForceRecreate))
488-
489462
done := make(chan struct{})
490463
defer close(done)
491464

@@ -518,6 +491,8 @@ func DeployStack(
518491
}
519492
}
520493

494+
stackLog.Info("deploying swarm stack")
495+
521496
err = DeploySwarmStack(*ctx, *dockerCli, project, deployConfig, *payload, externalWorkingDir, latestCommit, appVersion)
522497
if err != nil {
523498
prometheus.DeploymentErrorsTotal.WithLabelValues(deployConfig.Name).Inc()
@@ -551,6 +526,33 @@ func DeployStack(
551526
return fmt.Errorf("%s: %w", errMsg, err)
552527
}
553528
} else {
529+
hasChangedFiles, err := ProjectFilesHaveChanges(changedFiles, project)
530+
if err != nil {
531+
errMsg := "failed to check for changed project files"
532+
stackLog.Error(errMsg, logger.ErrAttr(err), slog.Group("compose_files", slog.Any("files", deployConfig.ComposeFiles)))
533+
534+
return fmt.Errorf("%s: %w", errMsg, err)
535+
}
536+
537+
hasChangedCompose, err := HasChangedComposeFiles(changedFiles, project)
538+
if err != nil {
539+
errMsg := "failed to check for changed compose files"
540+
stackLog.Error(errMsg, logger.ErrAttr(err), slog.Group("compose_files", slog.Any("files", deployConfig.ComposeFiles)))
541+
542+
return fmt.Errorf("%s: %w", errMsg, err)
543+
}
544+
545+
switch {
546+
case hasChangedFiles || (hasChangedCompose && triggerEvent == "poll"):
547+
deployConfig.ForceRecreate = true
548+
549+
stackLog.Debug("changed mounted files detected, forcing recreate of all services")
550+
case hasChangedCompose:
551+
stackLog.Debug("changed compose files detected, continue normal deployment")
552+
}
553+
554+
stackLog.Info("deploying stack", slog.Bool("forced", deployConfig.ForceRecreate))
555+
554556
err = deployCompose(*ctx, *dockerCli, project, deployConfig, *payload, externalWorkingDir, latestCommit, appVersion, forceDeploy)
555557
if err != nil {
556558
prometheus.DeploymentErrorsTotal.WithLabelValues(deployConfig.Name).Inc()

0 commit comments

Comments
 (0)