fix: restore SelectedReleases handling in GroupReleasesByDependency and revert snapshots

The root cause of the CI failure was that GroupReleasesByDependency was changed
to use !r.Filtered instead of opts.SelectedReleases for the DAG plan's Only field.
When no selectors are active (like helmfile destroy), all releases are unfiltered,
causing all releases to be planned for deletion - including uninstalled ones.

Fix: Use opts.SelectedReleases when provided, fall back to Filtered flag otherwise.
Also remove unnecessary SelectedReleases block from PlanReleases since
GroupReleasesByDependency now handles it directly.
Restore test snapshots from main as the behavior should now match.

Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>
Agent-Logs-Url: https://github.com/helmfile/helmfile/sessions/170cecc0-7a3e-4326-98d3-4f2bffee1848
This commit is contained in:
copilot-swe-agent[bot]
2026-03-25 00:12:22 +00:00
co-authored by yxxhero
parent 0cf7ab6908
commit ed823115f1
49 changed files with 271 additions and 285 deletions
@@ -12,20 +12,16 @@ GROUP RELEASES
invoking preapply hooks for releases in group 1/2: default//bar
invoking preapply hooks for releases in group 2/2: default//foo
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//bar
2 default//foo
processing releases in group 1/2: default//bar
processing releases in group 2/2: default//foo
processing 2 groups of releases in this order:
processing releases in group 1/1: default//bar
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//foo
2 default//bar
processing releases in group 1/2: default//foo
processing releases in group 2/2: default//bar
processing releases in group 1/1: default//foo
UPDATED RELEASES:
NAME NAMESPACE CHART VERSION DURATION
@@ -14,20 +14,16 @@ GROUP RELEASES
invoking preapply hooks for releases in group 1/2: default//foo
invoking preapply hooks for releases in group 2/2: default//bar
processing 2 groups of releases in this order:
GROUP RELEASES
1 default//foo
2 default//bar
processing releases in group 1/2: default//foo
processing releases in group 2/2: default//bar
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//bar
2 default//foo
processing releases in group 1/2: default//bar
processing releases in group 2/2: default//foo
processing releases in group 1/1: default//bar
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//foo
processing releases in group 1/1: default//foo
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
UPDATED RELEASES:
@@ -14,20 +14,16 @@ GROUP RELEASES
invoking preapply hooks for releases in group 1/2: default//bar
invoking preapply hooks for releases in group 2/2: default//foo
processing 2 groups of releases in this order:
GROUP RELEASES
1 default//bar
2 default//foo
processing releases in group 1/2: default//bar
processing releases in group 2/2: default//foo
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//foo
2 default//bar
processing releases in group 1/2: default//foo
processing releases in group 2/2: default//bar
processing releases in group 1/1: default//foo
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//bar
processing releases in group 1/1: default//bar
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
UPDATED RELEASES:
@@ -12,20 +12,16 @@ GROUP RELEASES
invoking preapply hooks for releases in group 1/2: default//foo
invoking preapply hooks for releases in group 2/2: default//bar
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//foo
2 default//bar
processing releases in group 1/2: default//foo
processing releases in group 2/2: default//bar
processing 2 groups of releases in this order:
processing releases in group 1/1: default//foo
processing 1 groups of releases in this order:
GROUP RELEASES
1 default//bar
2 default//foo
processing releases in group 1/2: default//bar
processing releases in group 2/2: default//foo
processing releases in group 1/1: default//bar
UPDATED RELEASES:
NAME NAMESPACE CHART VERSION DURATION
+9 -15
View File
@@ -25,32 +25,26 @@ invoking preapply hooks for releases in group 2/5: default//backend-v1, default/
invoking preapply hooks for releases in group 3/5: default//anotherbackend
invoking preapply hooks for releases in group 4/5: default//database, default//servicemesh
invoking preapply hooks for releases in group 5/5: default//logging, default//front-proxy
processing 5 groups of releases in this order:
processing 2 groups of releases in this order:
GROUP RELEASES
1 default//frontend-v1, default//frontend-v2, default//frontend-v3
2 default//backend-v1, default//backend-v2
3 default//anotherbackend
4 default//database, default//servicemesh
5 default//logging, default//front-proxy
1 default//frontend-v1
2 default//backend-v1
processing releases in group 1/5: default//frontend-v1, default//frontend-v2, default//frontend-v3
processing releases in group 2/5: default//backend-v1, default//backend-v2
processing releases in group 3/5: default//anotherbackend
processing releases in group 4/5: default//database, default//servicemesh
processing releases in group 5/5: default//logging, default//front-proxy
processing releases in group 1/2: default//frontend-v1
processing releases in group 2/2: default//backend-v1
processing 5 groups of releases in this order:
GROUP RELEASES
1 default//logging, default//front-proxy
2 default//database, default//servicemesh
3 default//anotherbackend
4 default//backend-v1, default//backend-v2
5 default//frontend-v1, default//frontend-v2, default//frontend-v3
4 default//backend-v2
5 default//frontend-v3
processing releases in group 1/5: default//logging, default//front-proxy
processing releases in group 2/5: default//database, default//servicemesh
processing releases in group 3/5: default//anotherbackend
processing releases in group 4/5: default//backend-v1, default//backend-v2
processing releases in group 5/5: default//frontend-v1, default//frontend-v2, default//frontend-v3
processing releases in group 4/5: default//backend-v2
processing releases in group 5/5: default//frontend-v3
UPDATED RELEASES:
NAME NAMESPACE CHART VERSION DURATION
@@ -13,19 +13,17 @@ GROUP RELEASES
invoking preapply hooks for releases in group 1/2: default/ns1/foo
invoking preapply hooks for releases in group 2/2: default/ns1/bar, default/ns2/bar
processing 2 groups of releases in this order:
processing 1 groups of releases in this order:
GROUP RELEASES
1 default/ns1/foo
2 default/ns1/bar, default/ns2/bar
1 default/ns2/bar
processing releases in group 1/2: default/ns1/foo
processing releases in group 2/2: default/ns1/bar, default/ns2/bar
processing releases in group 1/1: default/ns2/bar
processing 2 groups of releases in this order:
GROUP RELEASES
1 default/ns1/bar, default/ns2/bar
1 default/ns1/bar
2 default/ns1/foo
processing releases in group 1/2: default/ns1/bar, default/ns2/bar
processing releases in group 1/2: default/ns1/bar
getting deployed release version failed: Failed to get the version for: mychart2
processing releases in group 2/2: default/ns1/foo
getting deployed release version failed: Failed to get the version for: mychart1