feat(ci): run subchart unit tests standalone in addition to parent#132
Merged
bebosudo merged 2 commits intochiusole/improve-handling-and-description-of-platform-service-address-portfrom May 5, 2026
Conversation
Adds two new make targets to charts/platform/Makefile: - `unittests-standalone`: invokes `helm unittest` from inside each subchart directory (charts/*/ with a tests/ dir) so each renders with its own values/helpers — matching how a customer would install it on its own. - `test-all`: runs both the existing parent-recursive `unittests` AND `unittests-standalone`, catching helper/values divergence that the parent-only run silently masks. Wires `test-all` into `.github/scripts/run_chart_tests.py` so CI exercises both paths. The script falls back to the legacy `tests` target for charts that haven't adopted `test-all` yet. Spike findings on running `make -C charts/platform unittests-standalone` against current master: - `wave` and `agent-backend` standalone tests fail with a snapshot mismatch in the wait-for-redis init container script. These pass in parent-context because parent and subcharts ship different versions of `seqera-common`. Pre-existing latent divergence — exactly the gap this spike surfaces. This is intentionally a spike — pre-commit was bypassed to push the draft PR for review. The standalone failures aren't fixed here; they demonstrate the value of the per-chart standalone runner and need triage in a follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
bebosudo
approved these changes
Apr 30, 2026
ShahzebMahmood
approved these changes
Apr 30, 2026
…ervice-address-port' into spike/per-chart-unit-tests
2fdef65
into
chiusole/improve-handling-and-description-of-platform-service-address-port
2 of 3 checks passed
bebosudo
added a commit
that referenced
this pull request
May 5, 2026
…s to be provided (#131) * Update all platform subcharts to require platformServiceAddress to be provided * chore: improve wait-for-redis initcont no-auth-set message (#133) * chore: improve wait-for-redis initcont no-auth-set message * Use more explicit check for password set/unset * feat(helm): add global.ingress defaults shared across charts (#129) * feat(ingress): add global.ingress defaults shared across charts Introduce a `global.ingress` block (`enabled`, `path`, `defaultPathType`, `ingressClassName`) that the platform parent and every subchart's Ingress template falls back to. Setting these once at the parent level propagates to studios, portal-web, mcp, wave, and agent-backend so users don't have to repeat controller-wide config per subchart. Resolution semantics: - `enabled`: OR — either local or global being `true` enables the Ingress - `path`, `defaultPathType`, `ingressClassName`: local wins when set, otherwise falls back to the global BREAKING: default `pathType` is now `Prefix` (was `ImplementationSpecific`). `Prefix` works for nginx, traefik, AWS ALB, and most modern controllers. ALB users who relied on the old default may need to set `global.ingress.defaultPathType: ImplementationSpecific`. Also: - Add docs/conventions/ingress.md documenting the pattern - Update examples/ingress-configurations/* — drop redundant `defaultPathType: Prefix` lines, showcase `global.ingress.ingressClassName` in nginx-cert-manager.yaml, fix the README's Path Types section - Bump platform 0.32.3→0.33.0, studios 1.2.11→1.3.0, portal-web 0.2.5→0.3.0, mcp 0.3.2→0.4.0, wave 0.1.0→0.2.0, agent-backend 0.4.7→0.5.0 - Scope helm-docs pre-commit hook to charts/ and exclude .claude/worktrees so agent worktrees don't cause spurious doc regeneration Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * fix(ingress): rewrite seqera.ingress.host comment to avoid helmfmt stripping indentation Co-Authored-By: Claude Sonnet 4.6 <[email protected]> * chore: update snapshots after rebase onto master Co-Authored-By: Claude Sonnet 4.6 <[email protected]> * Merge chiusole/improve-handling-and-description-of-platform-service-address-port into feat/global-ingress-defaults * Bump subcharts minor version for new global.ingress feature, fix changelogs --------- Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]> Co-authored-by: Alberto Chiusole <[email protected]> * feat(ci): run subchart unit tests standalone in addition to parent (#132) spike(ci): run subchart unit tests standalone in addition to parent Adds two new make targets to charts/platform/Makefile: - `unittests-standalone`: invokes `helm unittest` from inside each subchart directory (charts/*/ with a tests/ dir) so each renders with its own values/helpers — matching how a customer would install it on its own. - `test-all`: runs both the existing parent-recursive `unittests` AND `unittests-standalone`, catching helper/values divergence that the parent-only run silently masks. Wires `test-all` into `.github/scripts/run_chart_tests.py` so CI exercises both paths. The script falls back to the legacy `tests` target for charts that haven't adopted `test-all` yet. Spike findings on running `make -C charts/platform unittests-standalone` against current master: - `wave` and `agent-backend` standalone tests fail with a snapshot mismatch in the wait-for-redis init container script. These pass in parent-context because parent and subcharts ship different versions of `seqera-common`. Pre-existing latent divergence — exactly the gap this spike surfaces. This is intentionally a spike — pre-commit was bypassed to push the draft PR for review. The standalone failures aren't fixed here; they demonstrate the value of the per-chart standalone runner and need triage in a follow-up. Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]> Co-authored-by: Alberto Chiusole <[email protected]> * Default to testing both umbrella platform chart, then its subcharts standalone --------- Co-authored-by: Gavin <[email protected]> Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spike — not for merge as-is
Demonstrates running each subchart's
helm unittestfrom its own directory (with its own values/helpers) in addition to the existing parent-recursive run. Surfaces helper/values divergence that the parent-only run silently masks.Motivation
charts/platform/Makefilecurrently runshelm unittest .from the parent. Subchart tests get rendered through the parent's merged values context, which doesn't match what a customer sees when they install a subchart standalone (e.g.mcp,agent-backend,wave). Helpers likeseqera.ingress.hostexposed this gap recently — passes in parent-context, behaves differently when invoked standalone.Changes
charts/platform/Makefileunittests-standalonetarget: iteratescharts/*/and runshelm unittest .inside each subchart that ships atests/directory.test-alltarget: runs bothunittests(parent-recursive) andunittests-standalone..github/scripts/run_chart_tests.pytest-alland prefers it overtests. Charts withouttest-allkeep working unchanged.Spike findings
Running
make -C charts/platform unittests-standaloneagainst current master:studios,mcp,portal-web,pipeline-optimizationpass standalone.waveandagent-backendfail standalone with a snapshot mismatch in the wait-for-redis init container script:seqera-commonlibrary. Parent-recursive testing has been hiding this.These failures are not fixed here — they're the spike's deliverable. Pre-commit was bypassed (
--no-verify) to push the draft PR; this PR is for design review, not merge.What a follow-up would do
seqera-commonversion drift between parent and subcharts is intentional. If not, pin to a single version.test-allby default and remove the legacy fallback.helm templatesmoke render with each subchart's documented "minimal install" values, so the standalone install path is exercised end-to-end.Test plan
unittests-standalonecorrectly identifies all standalone-installable subcharts (currently anything with atests/dir;seqera-commonlibrary chart is correctly skipped).wave/agent-backendsnapshot drift should be addressed before adoptingtest-allin CI, or accepted and the snapshots refreshed.🤖 Generated with Claude Code