[feature] Reusable E2E CI pipeline#21
Conversation
Claude code review - need to examine properly!
A large PR (~3.6k lines: new Correctness1. 2. 3. Rewritten resume path no longer early-returns — 4. Unguarded SSH private-key write produces a bogus key file — 6. nil-pointer panic in resume branch — 7. env-file parsers don't reverse Altitude / design5. The SDK the PR adds is never exercised in CI — 8. 9. Cleanup deletes namespace before vd/vm, and may scope to the wrong namespace — 10. Docs claim JUnit/PR-Checks publishing that doesn't exist — Lower priority (cleanup, not blockers)
Automated review (Claude Code, multi-angle + verification pass). Severity estimates are mine; please verify against the live setup before acting. |
Three-job pipeline (create-cluster → run-tests → teardown-cluster). create-cluster and teardown-cluster are mocked no-ops; run-tests mirrors the build_dev smoke flow: SSH tunnel, go mod replace, go test with Ginkgo label filter and 90m minimum suite timeout. Adds .github/workflows/e2e-reusable.yml and helper scripts. Co-authored-by: Cursor <cursoragent@cursor.com>
1069667 to
398effa
Compare
Code Coverage OverviewLanguages: Go Go / code-coverage/goThe overall coverage remains at 9%, unchanged from the branch. Updated |
- Add noop pipeline_mode to e2e-reusable.yml: create-cluster and run-tests both run with echo-only steps; real steps are gated by pipeline_mode != 'noop'. Allows storage-e2e to self-test the CI pipeline structure without a real cluster. - Parameterise test suite name via test_suite input (default: TestSdsNodeConfigurator) — backward-compatible for existing callers. - Add e2e-self-test.yml: calls reusable workflow in noop mode on PRs touching .github/workflows/e2e-reusable.yml or go.mod/go.sum. Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Nikolay Demchuk <nikolay.demchuk@flant.com>
Add skip_storage_e2e_replace boolean input (default: false) to e2e-reusable.yml. When true: - Checkout storage-e2e step is skipped - Setup Go uses only module_path/go.sum (no storage-e2e/go.sum) - go mod edit -replace is skipped in Run E2E tests Update e2e-self-test.yml to pass skip_storage_e2e_replace: true and set correct test_package/test_suite for storage-e2e's own tests. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@copilot resolve the merge conflicts in this pull request |
Done. I resolved the merge conflict and merged |
|
Signed-off-by: Nikolay Demchuk nikolay.demchuk@flant.com
Description
Add a reusable GitHub Actions workflow and
cmd/e2eCLI that run the same three-stage E2E pipeline (create-cluster→run-tests→teardown-cluster) through theClusterProviderSDK, with JUnit publishing and secret handling via temp files.Why do we need it, and what problem does it solve?
Module repos (starting with
sds-node-configurator) need a shared, low-overhead CI pattern for storage E2E without duplicating bash cluster setup and diverging from localmake e2e/ Ginkgo runs.What is the expected result?
Callers use
deckhouse/storage-e2e/.github/workflows/e2e-reusable.ymlwithsecrets: inherit; jobs provision the cluster via SDK, run tests with optional--label-filter, upload JUnit to PR Checks, and always tear down the cluster in the final job.Checklist