@@ -47,18 +47,19 @@ jobs:
4747 echo "changed=true" >> "$GITHUB_OUTPUT"
4848 fi
4949
50- - name : Recursive dependency update
51- if : steps.list-changed.outputs.changed == 'true'
50+ - name : Recursive dependency update (all charts, including nested)
5251 working-directory : .
5352 run : |
54- # Run twice so subcharts get their deps first, then umbrella gets updated copies (with nested deps)
53+ # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated
5554 for _ in 1 2; do
56- for chart in deployment/kubernetes/charts/*/; do
57- if [[ -f "${chart}Chart.yaml" ]] && grep -q "^dependencies:" "${chart}Chart.yaml" 2>/dev/null; then
58- echo "Updating dependencies for $chart"
59- helm dependency update "$chart"
55+ # Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory
56+ while IFS= read -r chartfile; do
57+ chart_dir="$(dirname "$chartfile")"
58+ if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then
59+ echo "Updating dependencies for $chart_dir"
60+ helm dependency update "$chart_dir"
6061 fi
61- done
62+ done < <(find deployment/kubernetes/charts -type f -name Chart.yaml)
6263 done
6364
6465 - name : Run chart-testing (lint)
@@ -110,6 +111,23 @@ jobs:
110111 fi
111112 echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT"
112113
114+ - name : Recursive dependency update (all charts, including nested)
115+ # Waiting on helm recursive feature https://github.com/helm/helm/pull/30855
116+ # Could alternatively switch to helm "cascade" plugin
117+ working-directory : .
118+ run : |
119+ # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated
120+ for _ in 1 2; do
121+ # Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory
122+ while IFS= read -r chartfile; do
123+ chart_dir="$(dirname "$chartfile")"
124+ if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then
125+ echo "Updating dependencies for $chart_dir"
126+ helm dependency update "$chart_dir"
127+ fi
128+ done < <(find deployment/kubernetes/charts -type f -name Chart.yaml)
129+ done
130+
113131 - name : Package Helm Charts
114132 # TODO: List the dir instead of hardcoding each one
115133 run : |
0 commit comments