mirror of https://github.com/dapr/quickstarts.git
325 lines
13 KiB
Makefile
325 lines
13 KiB
Makefile
include validate.mk
|
|
|
|
##################################################
|
|
# Main targets
|
|
##################################################
|
|
MM_SHELL ?= bash -c
|
|
.PHONY: all test_all_quickstarts
|
|
all: install_mm validat
|
|
|
|
# Run all tests at once
|
|
test_all_quickstarts: test_go_quickstarts test_python_quickstarts test_csharp_quickstarts test_java_quickstarts test_javascript_quickstarts
|
|
@echo "All quickstart tests complete!"
|
|
|
|
##################################################
|
|
# Version update targets
|
|
##################################################
|
|
|
|
# Update Go SDK version in all quickstarts
|
|
# Usage: make update_gosdk_version VERSION=v1.13.0-rc.1
|
|
.PHONY: update_gosdk_version
|
|
update_gosdk_version:
|
|
@if [ -z "$(VERSION)" ]; then \
|
|
echo "Error: VERSION parameter is required. Usage: make update_gosdk_version VERSION=v1.13.0-rc.1"; \
|
|
exit 1; \
|
|
fi
|
|
@if ! [[ "$(VERSION)" == v* ]]; then \
|
|
echo "Error: Go SDK VERSION must start with 'v' (e.g., v1.13.0)"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Updating go-sdk to version $(VERSION) in all SDK variant quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
if [ -d "$$building_block/go/sdk" ]; then \
|
|
echo "Checking $$building_block/go/sdk for go.mod"; \
|
|
if [ -f "$$building_block/go/sdk/go.mod" ]; then \
|
|
echo "Updating $$building_block/go/sdk to go-sdk $(VERSION)"; \
|
|
(cd "$$building_block/go/sdk" && \
|
|
grep -q "github.com/dapr/go-sdk" go.mod && \
|
|
go get github.com/dapr/go-sdk@$(VERSION) && \
|
|
go mod tidy) || \
|
|
echo "Failed to update go-sdk in $$building_block/go/sdk"; \
|
|
else \
|
|
echo "No go.mod file found in $$building_block/go/sdk"; \
|
|
echo "Looking for nested Go projects..."; \
|
|
NESTED_GO_MODS=$$(find "$$building_block/go/sdk" -name "go.mod" -type f); \
|
|
if [ -n "$$NESTED_GO_MODS" ]; then \
|
|
for GO_MOD in $$NESTED_GO_MODS; do \
|
|
NESTED_DIR=$$(dirname "$$GO_MOD"); \
|
|
echo "Found Go project at $$NESTED_DIR"; \
|
|
echo "Updating to go-sdk $(VERSION)"; \
|
|
(cd "$$NESTED_DIR" && \
|
|
grep -q "github.com/dapr/go-sdk" go.mod && \
|
|
go get github.com/dapr/go-sdk@$(VERSION) && \
|
|
go mod tidy) || \
|
|
echo "Failed to update go-sdk in $$NESTED_DIR"; \
|
|
done; \
|
|
else \
|
|
echo "No Go projects found in $$building_block/go/sdk"; \
|
|
fi; \
|
|
fi; \
|
|
fi; \
|
|
done
|
|
@echo "go-sdk update complete! Please verify changes and run tests before committing."
|
|
|
|
# Update Python SDK version in all quickstarts
|
|
# Usage: make update_python_sdk_version [DAPR_VERSION=1.16.0] [FASTAPI_VERSION=1.16.0] [WORKFLOW_VERSION=1.16.0]
|
|
.PHONY: update_python_sdk_version
|
|
update_python_sdk_version:
|
|
@echo "Updating Python dependencies in all quickstarts..."
|
|
@find . -path '*/python/*' -name "requirements.txt" | while read -r REQ_FILE; do \
|
|
echo "Processing: $$REQ_FILE"; \
|
|
PROJECT_DIR=$$(dirname "$$REQ_FILE"); \
|
|
if [ -n "$(DAPR_VERSION)" ] && grep -q "dapr>=" "$$REQ_FILE"; then \
|
|
echo " Updating dapr package to $(DAPR_VERSION)"; \
|
|
sed -i.bak "s/dapr>=.*$$/dapr>=$(DAPR_VERSION)/g" "$$REQ_FILE" && rm -f "$$REQ_FILE.bak" || \
|
|
echo " Failed to update dapr in $$REQ_FILE"; \
|
|
fi; \
|
|
if [ -n "$(FASTAPI_VERSION)" ] && grep -q "dapr-ext-fastapi>=" "$$REQ_FILE"; then \
|
|
echo " Updating dapr-ext-fastapi to $(FASTAPI_VERSION)"; \
|
|
sed -i.bak "s/dapr-ext-fastapi>=.*$$/dapr-ext-fastapi>=$(FASTAPI_VERSION)/g" "$$REQ_FILE" && rm -f "$$REQ_FILE.bak" || \
|
|
echo " Failed to update dapr-ext-fastapi in $$REQ_FILE"; \
|
|
fi; \
|
|
if [ -n "$(WORKFLOW_VERSION)" ] && grep -q "dapr-ext-workflow>=" "$$REQ_FILE"; then \
|
|
echo " Updating dapr-ext-workflow to $(WORKFLOW_VERSION)"; \
|
|
sed -i.bak "s/dapr-ext-workflow>=.*$$/dapr-ext-workflow>=$(WORKFLOW_VERSION)/g" "$$REQ_FILE" && rm -f "$$REQ_FILE.bak" || \
|
|
echo " Failed to update dapr-ext-workflow in $$REQ_FILE"; \
|
|
fi; \
|
|
done
|
|
@echo "Python dependency update complete! Please verify changes and run tests before committing."
|
|
|
|
# Update .NET SDK version in all C# quickstarts
|
|
# Usage: make update_dotnet_sdk_version VERSION=1.15.0
|
|
.PHONY: update_dotnet_sdk_version
|
|
update_dotnet_sdk_version:
|
|
@if [ -z "$(VERSION)" ]; then \
|
|
echo "Error: VERSION parameter is required. Usage: make update_dotnet_sdk_version VERSION=1.16.0-rc01"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Updating Dapr packages to version $(VERSION) in all C# projects..."
|
|
|
|
@# Process standard SDK quickstarts
|
|
@echo "Processing SDK quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
if [ -d "$$building_block/csharp/sdk" ]; then \
|
|
echo "Checking $$building_block/csharp/sdk for .csproj files"; \
|
|
CSPROJ_FILES=$$(find "$$building_block/csharp/sdk" -name "*.csproj"); \
|
|
if [ -n "$$CSPROJ_FILES" ]; then \
|
|
for CSPROJ in $$CSPROJ_FILES; do \
|
|
echo "Processing: $$CSPROJ"; \
|
|
PROJ_DIR=$$(dirname "$$CSPROJ"); \
|
|
DAPR_LINES=$$(grep -A1 "PackageReference Include=\"Dapr." "$$CSPROJ" || echo ""); \
|
|
if [ -n "$$DAPR_LINES" ]; then \
|
|
echo "$$DAPR_LINES" | grep "Include=\"Dapr." | while read -r LINE; do \
|
|
PACKAGE=$$(echo $$LINE | sed 's/.*Include="\([^"]*\)".*/\1/'); \
|
|
echo " Updating $$PACKAGE to version $(VERSION)"; \
|
|
(cd "$$PROJ_DIR" && dotnet add "$$(basename $$CSPROJ)" package "$$PACKAGE" --version $(VERSION)) || \
|
|
echo " Failed to update $$PACKAGE in $$CSPROJ"; \
|
|
done; \
|
|
else \
|
|
echo " No Dapr package references found in $$CSPROJ"; \
|
|
fi; \
|
|
done; \
|
|
else \
|
|
echo "No .csproj files found in $$building_block/csharp/sdk"; \
|
|
fi; \
|
|
fi; \
|
|
done
|
|
|
|
@# Process tutorials directory separately
|
|
@echo "Processing tutorials directory..."
|
|
@if [ -d "./tutorials" ]; then \
|
|
echo "Searching tutorials for .csproj files with Dapr references..."; \
|
|
TUTORIAL_CSPROJ_FILES=$$(find "./tutorials" -name "*.csproj"); \
|
|
if [ -n "$$TUTORIAL_CSPROJ_FILES" ]; then \
|
|
for CSPROJ in $$TUTORIAL_CSPROJ_FILES; do \
|
|
echo "Processing tutorial: $$CSPROJ"; \
|
|
PROJ_DIR=$$(dirname "$$CSPROJ"); \
|
|
DAPR_LINES=$$(grep -A1 "PackageReference Include=\"Dapr." "$$CSPROJ" || echo ""); \
|
|
if [ -n "$$DAPR_LINES" ]; then \
|
|
echo "$$DAPR_LINES" | grep "Include=\"Dapr." | while read -r LINE; do \
|
|
PACKAGE=$$(echo $$LINE | sed 's/.*Include="\([^"]*\)".*/\1/'); \
|
|
echo " Updating $$PACKAGE to version $(VERSION)"; \
|
|
(cd "$$PROJ_DIR" && dotnet add "$$(basename $$CSPROJ)" package "$$PACKAGE" --version $(VERSION)) || \
|
|
echo " Failed to update $$PACKAGE in $$CSPROJ"; \
|
|
done; \
|
|
else \
|
|
echo " No Dapr package references found in $$CSPROJ"; \
|
|
fi; \
|
|
done; \
|
|
else \
|
|
echo "No .csproj files found in tutorials directory"; \
|
|
fi; \
|
|
else \
|
|
echo "No tutorials directory found"; \
|
|
fi
|
|
|
|
@echo "C# Dapr package update complete! Please verify changes and run tests before committing."
|
|
|
|
# Update JavaScript SDK version in all quickstarts
|
|
# Usage: make update_javascript_sdk_version VERSION=3.4.0
|
|
.PHONY: update_javascript_sdk_version
|
|
update_javascript_sdk_version:
|
|
@if [ -z "$(VERSION)" ]; then \
|
|
echo "Error: VERSION parameter is required. Usage: make update_javascript_sdk_version VERSION=3.4.0"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Updating @dapr/dapr to version $(VERSION) in all JavaScript SDK quickstarts..."
|
|
@for dir in $$(find . -path "*/javascript/sdk" -type d); do \
|
|
echo "Checking $$dir for package.json files"; \
|
|
if [ -f "$$dir/package.json" ]; then \
|
|
if grep -q "@dapr/dapr" "$$dir/package.json"; then \
|
|
echo " Updating @dapr/dapr to version $(VERSION) in $$dir"; \
|
|
(cd "$$dir" && npm install @dapr/dapr@$(VERSION) --save) || \
|
|
echo " Failed to update @dapr/dapr in $$dir/package.json"; \
|
|
else \
|
|
echo " No @dapr/dapr package found in $$dir/package.json"; \
|
|
fi; \
|
|
else \
|
|
echo " No package.json found in $$dir"; \
|
|
for subdir in $$(find "$$dir" -maxdepth 2 -type d | grep -v node_modules); do \
|
|
if [ -f "$$subdir/package.json" ]; then \
|
|
if grep -q "@dapr/dapr" "$$subdir/package.json"; then \
|
|
echo " Updating @dapr/dapr to version $(VERSION) in $$subdir"; \
|
|
(cd "$$subdir" && npm install @dapr/dapr@$(VERSION) --save) || \
|
|
echo " Failed to update @dapr/dapr in $$subdir/package.json"; \
|
|
fi; \
|
|
fi; \
|
|
done; \
|
|
fi; \
|
|
done
|
|
@echo "JavaScript Dapr package update complete! Please verify changes and run tests before committing."
|
|
|
|
# Update Java SDK version in all quickstarts
|
|
# Usage: make update_java_sdk_version VERSION=1.12.0
|
|
.PHONY: update_java_sdk_version
|
|
update_java_sdk_version:
|
|
@if [ -z "$(VERSION)" ]; then \
|
|
echo "Error: VERSION parameter is required. Usage: make update_java_sdk_version VERSION=1.12.0"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Updating Dapr packages to version $(VERSION) in all Java projects..."
|
|
@# Process standard SDK quickstarts
|
|
@echo "Processing SDK quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
if [ -d "$$building_block/java/sdk" ]; then \
|
|
echo "Checking $$building_block/java/sdk for pom.xml files"; \
|
|
POM_FILES=$$(find "$$building_block/java/sdk" -name "pom.xml"); \
|
|
if [ -n "$$POM_FILES" ]; then \
|
|
for POM in $$POM_FILES; do \
|
|
POM_DIR=$$(dirname "$$POM"); \
|
|
echo "Processing: $$POM"; \
|
|
if grep -q "<groupId>io.dapr</groupId>" "$$POM"; then \
|
|
echo " Found io.dapr dependency in $$POM"; \
|
|
echo " Updating to version $(VERSION)"; \
|
|
(cd "$$POM_DIR" && mvn versions:use-dep-version -Dincludes=io.dapr:dapr-sdk -DdepVersion=$(VERSION) -DgenerateBackupPoms=false -q) || \
|
|
echo " Failed to update io.dapr:dapr-sdk in $$POM"; \
|
|
echo " Updated dependency: "; \
|
|
grep -A2 "<groupId>io.dapr</groupId>" "$$POM"; \
|
|
else \
|
|
echo " No io.dapr dependency found in $$POM"; \
|
|
fi; \
|
|
done; \
|
|
else \
|
|
echo "No pom.xml files found in $$building_block/java/sdk"; \
|
|
fi; \
|
|
fi; \
|
|
done
|
|
@echo "Java SDK update complete! Please verify changes and run tests before committing."
|
|
|
|
|
|
##################################################
|
|
# Testing targets
|
|
##################################################
|
|
|
|
# Test Go quickstarts
|
|
.PHONY: test_go_quickstarts
|
|
test_go_quickstarts:
|
|
@echo "Testing all Go quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
for variant in "http" "sdk"; do \
|
|
if [ ! -d "$$building_block/go/$$variant" ]; then \
|
|
echo "$$building_block/go/$$variant does not exist."; \
|
|
else \
|
|
echo "Validating $$building_block/go/$$variant quickstart"; \
|
|
(cd $$building_block/go/$$variant && make validate) || echo "Validation failed for $$building_block/go/$$variant"; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
@echo "Go quickstart testing complete!"
|
|
|
|
# Test Python quickstarts
|
|
.PHONY: test_python_quickstarts
|
|
test_python_quickstarts:
|
|
@echo "Testing all Python quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
for variant in "http" "sdk"; do \
|
|
if [ ! -d "$$building_block/python/$$variant" ]; then \
|
|
echo "$$building_block/python/$$variant does not exist."; \
|
|
else \
|
|
echo "Validating $$building_block/python/$$variant quickstart"; \
|
|
(cd $$building_block/python/$$variant && \
|
|
python3 -m venv .venv && \
|
|
. .venv/bin/activate && \
|
|
make validate && \
|
|
deactivate && \
|
|
rm -rf .venv) || echo "Validation failed for $$building_block/python/$$variant"; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
@echo "Python quickstart testing complete!"
|
|
|
|
# Test C# quickstarts
|
|
.PHONY: test_csharp_quickstarts
|
|
test_csharp_quickstarts:
|
|
@echo "Testing all C# quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
for variant in "http" "sdk"; do \
|
|
if [ ! -d "$$building_block/csharp/$$variant" ]; then \
|
|
echo "$$building_block/csharp/$$variant does not exist."; \
|
|
else \
|
|
echo "Validating $$building_block/csharp/$$variant quickstart"; \
|
|
(cd $$building_block/csharp/$$variant && make validate) || echo "Validation failed for $$building_block/csharp/$$variant"; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
@echo "C# quickstart testing complete!"
|
|
|
|
# Test Java quickstarts
|
|
.PHONY: test_java_quickstarts
|
|
test_java_quickstarts:
|
|
@echo "Testing all Java quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
for variant in "http" "sdk"; do \
|
|
if [ ! -d "$$building_block/java/$$variant" ]; then \
|
|
echo "$$building_block/java/$$variant does not exist."; \
|
|
else \
|
|
echo "Validating $$building_block/java/$$variant quickstart"; \
|
|
(cd $$building_block/java/$$variant && make validate) || echo "Validation failed for $$building_block/java/$$variant"; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
@echo "Java quickstart testing complete!"
|
|
|
|
# Test JavaScript quickstarts
|
|
.PHONY: test_javascript_quickstarts
|
|
test_javascript_quickstarts:
|
|
@echo "Testing all JavaScript quickstarts..."
|
|
@building_blocks=$$(find . -maxdepth 1 -mindepth 1 -type d); \
|
|
for building_block in $$building_blocks; do \
|
|
for variant in "http" "sdk"; do \
|
|
if [ ! -d "$$building_block/javascript/$$variant" ]; then \
|
|
echo "$$building_block/javascript/$$variant does not exist."; \
|
|
else \
|
|
echo "Validating $$building_block/javascript/$$variant quickstart"; \
|
|
(cd $$building_block/javascript/$$variant && make validate) || echo "Validation failed for $$building_block/javascript/$$variant"; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
@echo "JavaScript quickstart testing complete!"
|