Fix preapply hooks are not called on no diff when run apply subcommand (#522)

* Fix presync hooks are not called on no diff when run apply subcommand

Signed-off-by: xiaomudk <xiaomudk@gmail.com>

* Update docs/index.md

Co-authored-by: Yusuke Kuoka <ykuoka@gmail.com>
Signed-off-by: xiaomudk <xiaomudk@gmail.com>

Signed-off-by: xiaomudk <xiaomudk@gmail.com>
Co-authored-by: Yusuke Kuoka <ykuoka@gmail.com>
This commit is contained in:
xiaomudk
2022-12-10 12:07:26 +09:00
committed by GitHub
co-authored by Yusuke Kuoka
parent 70a1b3b513
commit 94381c1e17
4 changed files with 29 additions and 18 deletions
+18 -17
View File
@@ -1354,30 +1354,20 @@ func (a *App) apply(r *Run, c ApplyConfigProvider) (bool, bool, []error) {
}
}
for id := range releasesWithNoChange {
r := releasesWithNoChange[id]
if _, err := st.TriggerCleanupEvent(&r, "apply"); err != nil {
a.Logger.Warnf("warn: %v\n", err)
}
}
if releasesToBeDeleted == nil && releasesToBeUpdated == nil {
if infoMsg != nil {
logger := c.Logger()
logger.Infof("")
logger.Infof(*infoMsg)
}
return true, false, nil
infoMsgStr := ""
if infoMsg != nil {
infoMsgStr = *infoMsg
}
confMsg := fmt.Sprintf(`%s
Do you really want to apply?
Helmfile will apply all your changes, as shown above.
`, *infoMsg)
`, infoMsgStr)
interactive := c.Interactive()
if !interactive {
a.Logger.Debug(*infoMsg)
if !interactive && infoMsgStr != "" {
a.Logger.Debug(infoMsgStr)
}
var applyErrs []error
@@ -1457,6 +1447,17 @@ Do you really want to apply?
}
affectedReleases.DisplayAffectedReleases(c.Logger())
for id := range releasesWithNoChange {
r := releasesWithNoChange[id]
if _, err := st.TriggerCleanupEvent(&r, "apply"); err != nil {
a.Logger.Warnf("warn: %v\n", err)
}
}
if releasesToBeDeleted == nil && releasesToBeUpdated == nil {
return true, false, nil
}
return true, true, applyErrs
}
+7
View File
@@ -34,4 +34,11 @@ second-pass rendering result of "helmfile.yaml.part.0":
merged environment: &{default map[] map[]}
2 release(s) found in helmfile.yaml
invoking preapply hooks for 2 groups of releases in this order:
GROUP RELEASES
1 default//foo
2 default//bar
invoking preapply hooks for releases in group 1/2: default//foo
invoking preapply hooks for releases in group 2/2: default//bar
changing working directory back to "/path/to"
@@ -2,5 +2,8 @@
hook[prepare] logs | foo
hook[prepare] logs |
hook[preapply] logs | foo
hook[preapply] logs |
hook[cleanup] logs | foo
hook[cleanup] logs |