.PHONY: test release _run-tests _audit _publish
_run-tests: _check-rust
@echo "→ Running memcached integration tests (single-threaded)..."
@$(CARGO) test --test memcached_integration_test --features memcached -- --test-threads=1
@echo "→ Running all other tests..."
@$(CARGO) test $(FEATURES) --lib --bins --test integration_test --test integration_serialization --test proptest_serialization --test redis_integration_test --test golden_blobs --test golden_blob_generator
_audit:
@echo "→ Running security audit..."
@command -v cargo-audit >/dev/null 2>&1 || { \
echo "Installing cargo-audit..."; \
$(CARGO) install cargo-audit; \
}
@$(CARGO) audit
_publish:
@echo ""
@echo "========================================="
@echo "⚠️ Ready to publish to crates.io"
@echo "========================================="
@read -p "Publish cache-kit? (yes/no): " confirm && [ "$$confirm" = "yes" ] || exit 1
@$(CARGO) publish --all-features
@echo "✓ Published successfully"
test: _run-tests ## Run all tests (use FEATURES="--features redis" to filter)
@echo ""
@echo "✓ All tests passed"
release: _check-rust build_release test _audit _publish
@echo ""
@echo "========================================="
@echo "✓ RELEASE COMPLETE"
@echo "========================================="