diff --git a/Makefile b/Makefile index 6fb335c97..f3dccbbe2 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,6 @@ ### Makefile Helpers ### ######################## -# TODO(@olshansk): Remove "Shannon" and just use "Pocket". - .PHONY: list list: ## List all make targets @${MAKE} -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort @@ -47,6 +45,22 @@ check_path_config: path_run: path_build check_path_config ## Run the path binary as a standalone binary (cd bin; ./path -config ../${CONFIG_PATH}) +################################ +### Development Convenience ### +################################ + +.PHONY: dev +dev: path_build test_unit ## Quick development cycle: build + test + +.PHONY: check +check: go_lint test_unit ## Comprehensive quality checks (linting + tests) + +.PHONY: ci +ci: go_lint test_unit ## Run full CI pipeline locally + +.PHONY: pre_commit +pre_commit: go_lint test_unit ## Run pre-commit checks + ############################### ### Makefile imports ### ############################### diff --git a/makefiles/docs.mk b/makefiles/docs.mk index 54099447d..73fadefe8 100644 --- a/makefiles/docs.mk +++ b/makefiles/docs.mk @@ -11,6 +11,9 @@ go_docs: ## Start Go documentation server docusaurus_start: ## Start docusaurus server (cd docusaurus && yarn install && yarn start --port 4000) +.PHONY: docs_serve +docs_serve: docusaurus_start ## Start documentation server (alias for docusaurus_start) + # Uses https://github.com/PaloAltoNetworks/docusaurus-openapi-docs to generate OpenAPI docs. # This is a custom plugin for Docusaurus that allows us to embed the OpenAPI spec into the docs. # Outputs docs files to docusaurus/docs/learn/api/*.mdx diff --git a/makefiles/helpers.mk b/makefiles/helpers.mk index 3d7d17740..4827f6bb6 100644 --- a/makefiles/helpers.mk +++ b/makefiles/helpers.mk @@ -7,21 +7,20 @@ git_fetch_prune_tags: ## Sync local tags to remote git fetch --prune --prune-tags origin -.PHONY: shannon_preliminary_services_test_help -shannon_preliminary_services_test_help: ## Run shannon preliminary services test to verify service availability - ./e2e/scripts/shannon_preliminary_services_test.sh --help - .PHONY: shannon_preliminary_services_test shannon_preliminary_services_test: ## Run shannon preliminary services test to verify service availability + @echo "💡 Usage: ./e2e/scripts/shannon_preliminary_services_test.sh [--help]" ./e2e/scripts/shannon_preliminary_services_test.sh -.PHONY: source_shannon_preliminary_services_helpers -source_shannon_preliminary_services_helpers: ## Source shannon preliminary services helpers - @echo "Run the following command to source shannon preliminary services helpers:" - @echo "" - @echo "\$$ source ./e2e/scripts/shannon_preliminary_services_helpers.sh" +.PHONY: shannon_services_helpers +shannon_services_helpers: ## Instructions for Shannon service helper functions + @echo "################################################################" + @echo "Shannon Service Helper Functions" + @echo "################################################################" + @echo "Source the helper functions:" + @echo " $$ source ./e2e/scripts/shannon_preliminary_services_helpers.sh" @echo "" - @echo "Then, try running one of the following commands:" - @echo " \$$ shannon_query_services_by_owner --help" - @echo " \$$ shannon_query_service_tlds_by_id --help" - @echo "" \ No newline at end of file + @echo "Available functions:" + @echo " $$ shannon_query_services_by_owner --help" + @echo " $$ shannon_query_service_tlds_by_id --help" + @echo "################################################################" \ No newline at end of file diff --git a/makefiles/localnet.mk b/makefiles/localnet.mk index 4f289cf0f..48ff216c9 100644 --- a/makefiles/localnet.mk +++ b/makefiles/localnet.mk @@ -15,12 +15,12 @@ # Brings up local Tilt environment with remote helm charts .PHONY: path_up -path_up: check_docker ## Brings up local Tilt development environment in Docker +path_up: path_build check_docker ## Brings up local Tilt development environment in Docker @./local/scripts/localnet.sh up # Brings up local Tilt environment with local helm charts .PHONY: path_up_local_helm -path_up_local_helm: check_docker ## Brings up local Tilt environment with local helm charts +path_up_local_helm: path_build check_docker ## Brings up local Tilt environment with local helm charts @./local/scripts/localnet.sh up --use-local-helm .PHONY: check_docker diff --git a/makefiles/test.mk b/makefiles/test.mk index 41ab97ba4..b740c1422 100644 --- a/makefiles/test.mk +++ b/makefiles/test.mk @@ -5,6 +5,10 @@ ### Test Make Targets ### ######################### +################### +### Unit & Lint ### +################### + .PHONY: test_all ## Run all unit tests and E2E test a subset of key services. test_all: test_unit @$(MAKE) e2e_test eth,poly,xrplevm-testnet,oasys @@ -17,16 +21,16 @@ test_unit: ## Run all unit tests go_lint: ## Run all go linters golangci-lint run --timeout 5m --build-tags test -################# +################## ### E2E Tests ### -################# +################## .PHONY: e2e_test_all -e2e_test_all: shannon_e2e_config_warning ## Run an E2E Shannon relay test for all service IDs +e2e_test_all: path_build shannon_e2e_config_warning ## Run an E2E Shannon relay test for all service IDs (cd e2e && TEST_MODE=e2e TEST_PROTOCOL=shannon go test -v -tags=e2e -count=1 -run Test_PATH_E2E) .PHONY: e2e_test -e2e_test: shannon_e2e_config_warning ## Run an E2E Shannon relay test with specified service IDs (e.g. make shannon_test_e2e eth,xrplevm) +e2e_test: path_build shannon_e2e_config_warning ## Run an E2E Shannon relay test with specified service IDs (e.g. make shannon_test_e2e eth,xrplevm) @if [ "$(filter-out $@,$(MAKECMDGOALS))" = "" ]; then \ echo "❌ Error: Service IDs are required (comma-separated list)"; \ echo " 👀 Example: make test_e2e_evm_shannon eth,xrplevm"; \ @@ -36,7 +40,7 @@ e2e_test: shannon_e2e_config_warning ## Run an E2E Shannon relay test with speci (cd e2e && TEST_MODE=e2e TEST_PROTOCOL=shannon TEST_SERVICE_IDS=$(filter-out $@,$(MAKECMDGOALS)) go test -v -tags=e2e -count=1 -run Test_PATH_E2E) .PHONY: e2e_test_eth_fallback -e2e_test_eth_fallback: shannon_e2e_config_warning ## Run an E2E Shannon relay test with ETH fallback enabled (requires FALLBACK_URL) +e2e_test_eth_fallback: path_build shannon_e2e_config_warning ## Run an E2E Shannon relay test with ETH fallback enabled (requires FALLBACK_URL) @if [ "$(filter-out $@,$(MAKECMDGOALS))" = "" ]; then \ echo "❌ Error: ETH fallback URL is required"; \ echo " 👀 Example: make e2e_test_eth_fallback https://eth.rpc.backup.io"; \ @@ -51,11 +55,11 @@ e2e_test_eth_fallback: shannon_e2e_config_warning ## Run an E2E Shannon relay te ################## .PHONY: load_test_all -load_test_all: ## Run a Shannon load test for all service IDs +load_test_all: path_build ## Run a Shannon load test for all service IDs (cd e2e && TEST_MODE=load TEST_PROTOCOL=shannon go test -v -tags=e2e -count=1 -run Test_PATH_E2E) .PHONY: load_test -load_test: ## Run a Shannon load test with specified service IDs (e.g. make load_test eth,xrplevm) +load_test: path_build ## Run a Shannon load test with specified service IDs (e.g. make load_test eth,xrplevm) @if [ "$(filter-out $@,$(MAKECMDGOALS))" = "" ]; then \ echo "❌ Error: Service IDs are required (comma-separated list)"; \ echo " 👀 Example: make load_test eth,xrplevm"; \