Summary
runpodctl currently lacks integration tests that exercise the full CLI lifecycle. An integration test suite would help catch regressions and validate end-to-end behavior.
Desired behavior
- A test suite that covers the full lifecycle of key resources:
- Pods: create → list → get → update → stop → start → delete
- Serverless: create → list → get → update → delete
- File transfer: send/receive via croc
- A GitHub Actions workflow that runs the suite with gated API key access
- Tests should gracefully handle missing API keys (e.g. on external fork PRs)
- Resource cleanup must be scoped — only clean up resources created by the test run (e.g. using a name prefix like
ci-test-), never delete all account resources
- Template IDs and other config should be parameterized (env vars), not hardcoded
- Use
trap for cleanup to ensure resources are removed even if tests fail
Related PRs
Notes
- Integration tests create real billable resources, so they should use CPU-only compute and minimal templates
- The CI workflow should only trigger on
main and PRs to main (no hardcoded feature branch names)
- Consider using Go-based e2e tests (the project already has a
go test -tags e2e convention) rather than shell scripts
Summary
runpodctl currently lacks integration tests that exercise the full CLI lifecycle. An integration test suite would help catch regressions and validate end-to-end behavior.
Desired behavior
ci-test-), never delete all account resourcestrapfor cleanup to ensure resources are removed even if tests failRelated PRs
Notes
mainand PRs tomain(no hardcoded feature branch names)go test -tags e2econvention) rather than shell scripts