Developing cloud-nuke
February 27, 2026 · View on GitHub
Running Locally
go run main.go
Running Tests
WARNING: Many tests run against a real AWS account and create/destroy actual resources. DO NOT hit
CTRL+Cwhile tests are running — this prevents proper cleanup. We are not responsible for any charges you may incur.
Configure your AWS credentials before running tests.
# Run all tests
go test -v ./...
# Run tests in a specific package
cd aws
go test -v
# Run a specific test
cd aws
go test -v -run TestListAMIs
# Run a specific test in aws/resources
cd aws/resources
go test -v -run TestLambdaFunction_GetAll
# Opt-in to expensive tests via env vars
TEST_ACMPCA_EXPENSIVE_ENABLE=1 go test -v ./...
Formatting
Every source file should be formatted with go fmt.
Releasing New Versions
We follow the release process defined in our Coding Methodology.
Choosing a Release Tag
If the release includes new resource types, bump the minor version (X in v0.X.Y). Since v0.2.0, cloud-nuke automatically includes new resources (opt-out model), so new resource types are inherently backward-incompatible for users with CI pipelines around cloud-nuke.
Creating a Release
Go to the Releases Page and create a new release. CircleCI will automatically detect the tag, build binaries for every OS, and upload them to the GitHub release.