- Add csharp job: builds with Mono, tests sync version - Add dotnet job: builds both sync and async with .NET 10 - Update clients/dotnet/Makefile to support sync and async builds - Update clients/csharp/Makefile to remove reference to deleted dotnet folder - Add both to summary job dependencies
99 lines
3.5 KiB
Makefile
99 lines
3.5 KiB
Makefile
# UN CLI - .NET 10 Implementation (sync and async)
|
|
|
|
.PHONY: build build-sync build-async run clean test test-sync test-async help
|
|
|
|
SYNC_DIR := sync/src
|
|
ASYNC_DIR := async/src
|
|
|
|
GREEN := \033[32m
|
|
YELLOW := \033[33m
|
|
NC := \033[0m
|
|
|
|
build: build-sync build-async
|
|
|
|
build-sync:
|
|
@echo "$(YELLOW)Building .NET 10 sync version...$(NC)"
|
|
cd $(SYNC_DIR) && dotnet build -c Release
|
|
@echo "$(GREEN)✓ Sync build complete$(NC)"
|
|
|
|
build-async:
|
|
@echo "$(YELLOW)Building .NET 10 async version...$(NC)"
|
|
cd $(ASYNC_DIR) && dotnet build -c Release
|
|
@echo "$(GREEN)✓ Async build complete$(NC)"
|
|
|
|
run-sync:
|
|
cd $(SYNC_DIR) && dotnet run --
|
|
|
|
run-async:
|
|
cd $(ASYNC_DIR) && dotnet run --
|
|
|
|
clean:
|
|
cd $(SYNC_DIR) && dotnet clean 2>/dev/null || true
|
|
cd $(ASYNC_DIR) && dotnet clean 2>/dev/null || true
|
|
rm -rf $(SYNC_DIR)/bin $(SYNC_DIR)/obj
|
|
rm -rf $(ASYNC_DIR)/bin $(ASYNC_DIR)/obj
|
|
|
|
test: test-sync test-async
|
|
@echo "$(GREEN)✓ .NET 10: All tests complete$(NC)"
|
|
|
|
test-sync: build-sync
|
|
@echo ""
|
|
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@echo "Testing .NET 10 SYNC version"
|
|
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@echo "Testing --help..."
|
|
cd $(SYNC_DIR) && dotnet run -- --help
|
|
@echo ""
|
|
@echo "Testing --version..."
|
|
cd $(SYNC_DIR) && dotnet run -- --version
|
|
@echo "$(GREEN)✓ Sync tests passed$(NC)"
|
|
|
|
test-async: build-async
|
|
@echo ""
|
|
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@echo "Testing .NET 10 ASYNC version"
|
|
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@echo "Testing --help..."
|
|
cd $(ASYNC_DIR) && dotnet run -- --help
|
|
@echo ""
|
|
@echo "Testing --version..."
|
|
cd $(ASYNC_DIR) && dotnet run -- --version
|
|
@echo "$(GREEN)✓ Async tests passed$(NC)"
|
|
|
|
test-cli: build
|
|
@echo "CLI tests require UNSANDBOX_PUBLIC_KEY and UNSANDBOX_SECRET_KEY"
|
|
@if [ -n "$$UNSANDBOX_PUBLIC_KEY" ]; then \
|
|
echo "Testing sync key validation..."; \
|
|
cd $(SYNC_DIR) && dotnet run -- key; \
|
|
echo "Testing async key validation..."; \
|
|
cd $(ASYNC_DIR) && dotnet run -- key; \
|
|
else \
|
|
echo "$(YELLOW)⊘ Skipping (no API credentials)$(NC)"; \
|
|
fi
|
|
|
|
test-functional: build
|
|
@if [ -z "$$UNSANDBOX_PUBLIC_KEY" ]; then \
|
|
echo "$(YELLOW)⊘ Skipping functional tests (no API credentials)$(NC)"; \
|
|
else \
|
|
echo "Testing sync execute..."; \
|
|
cd $(SYNC_DIR) && dotnet run -- ../../test/fib.py 2>&1 | grep -q "fib(10) = 55" && echo "$(GREEN)✓ Sync execute passed$(NC)"; \
|
|
echo "Testing async execute..."; \
|
|
cd $(ASYNC_DIR) && dotnet run -- ../../test/fib.py 2>&1 | grep -q "fib(10) = 55" && echo "$(GREEN)✓ Async execute passed$(NC)"; \
|
|
fi
|
|
|
|
help:
|
|
@echo "UN CLI (.NET 10) Makefile"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@echo " build Build both sync and async versions"
|
|
@echo " build-sync Build sync version only"
|
|
@echo " build-async Build async version only"
|
|
@echo " run-sync Run sync CLI"
|
|
@echo " run-async Run async CLI"
|
|
@echo " clean Clean build artifacts"
|
|
@echo " test Run basic tests (both versions)"
|
|
@echo " test-sync Test sync version"
|
|
@echo " test-async Test async version"
|
|
@echo " test-cli Run CLI tests (requires API keys)"
|
|
@echo " test-functional Run functional tests (requires API keys)"
|
|
@echo " help Show this help"
|