From 577f5b34f9e1cb265aaef9e94365571d6ff2fc20 Mon Sep 17 00:00:00 2001 From: Michael Bianco Date: Wed, 13 Nov 2024 07:02:56 -0700 Subject: [PATCH] chore: add Makefile for build and lint commands helpful for a rust newbie like myself to easily run test commands and debug container builds --- Makefile | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..dcdabaa9f --- /dev/null +++ b/Makefile @@ -0,0 +1,42 @@ +install-insta: + cargo install --list | grep -q cargo-insta || cargo install cargo-insta + +# when adding or modifying ./examples tests, you'll need to run this +review-snapshots: install-insta + cargo insta test --review --test generate_plan_tests + +lint: + cargo fmt --all -- --check + cargo check + cargo clippy + cd docs && yarn lint + +# run locally to fix all linting errors before pushing +lint-fix: + cargo fmt --all + cargo check + cargo clippy --fix --allow-dirty + cd docs && yarn lint + +# where TEST_TARGET=test_python_asdf_poetry, helpful for rerunning failed tests on CI +test-single: + RUST_LOG=DEBUG RUST_BACKTRACE=1 cargo test --package nixpacks --test docker_run_tests -- $(TEST_TARGET) --exact + +# ex: TEST_TARGET=examples/python-postgres +build-single: + if [ ! -d "$(TEST_TARGET)" ]; then \ + echo "Error: $(TEST_TARGET) is not a valid directory."; \ + exit 1; \ + fi + + RUST_LOG=DEBUG RUST_BACKTRACE=1 cargo run -- build $(TEST_TARGET) --name node + +debug-single: + if [ ! -d "$(TEST_TARGET)" ]; then \ + echo "Error: $(TEST_TARGET) is not a valid directory."; \ + exit 1; \ + fi + + cargo run -- build $(TEST_TARGET) --out $(TEST_TARGET) + build_debug_cmd="$(shell sed 's/docker build/BUILDX_EXPERIMENTAL=1 docker buildx debug --invoke bash build/' $(TEST_TARGET)/.nixpacks/build.sh)" && \ + eval "$$build_debug_cmd" \ No newline at end of file