1+ .PHONY : help test test-net48 test-net8 test-net9 lint fmt check
2+
3+ # Default target when running just 'make'
4+ help :
5+ @echo " Available targets:"
6+ @echo " test - Run all tests"
7+ @echo " test-net48 - Run tests for .NET Framework 4.8"
8+ @echo " test-net8 - Run tests for .NET 8.0"
9+ @echo " test-net9 - Run tests for .NET 9.0"
10+ @echo " lint - Verify code formatting and style"
11+ @echo " fmt - Apply code formatting"
12+ @echo " check - Run all checks (lint + test)"
13+
14+ # Run tests for all supported frameworks
15+ test : test-net48 test-net8 test-net9
16+ @echo " ✅ All tests completed successfully!"
17+
18+ # Run tests for .NET Framework 4.8
19+ test-net48 :
20+ @echo " 🚀 Running tests for .NET Framework 4.8..."
21+ @dotnet test --framework net48 --no-restore
22+
23+ # Run tests for .NET 8.0
24+ test-net8 :
25+ @echo " 🚀 Running tests for .NET 8.0..."
26+ @dotnet test --framework net8.0 --no-restore
27+
28+ # Run tests for .NET 9.0
29+ test-net9 :
30+ @echo " 🚀 Running tests for .NET 9.0..."
31+ @dotnet test --framework net9.0 --no-restore
32+
33+ # Verify code formatting and analyzers
34+ lint :
35+ @echo " 🔍 Checking code formatting..."
36+ @dotnet format --verify-no-changes --severity info || (echo " ❌ Code formatting issues found. Run 'make fmt' to fix." && exit 1)
37+ @echo " ✅ Code formatting looks good!"
38+
39+ # Apply formatting fixes
40+ fmt :
41+ @echo " 🎨 Applying code formatting..."
42+ @# Create backups of project files
43+ @cp src/OpenFga.Sdk/OpenFga.Sdk.csproj src/OpenFga.Sdk/OpenFga.Sdk.csproj.bak
44+ @cp src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj.bak
45+
46+ @# Use sed with appropriate flags for platform compatibility
47+ @if [ " $$ (uname)" = " Darwin" ]; then \
48+ sed -i ' ' " s/<TargetFrameworks>.*<\\ /TargetFrameworks>/<TargetFramework>net8.0<\\ /TargetFramework>/" src/OpenFga.Sdk/OpenFga.Sdk.csproj && \
49+ sed -i ' ' " s/<TargetFrameworks>.*<\\ /TargetFrameworks>/<TargetFramework>net8.0<\\ /TargetFramework>/" src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj; \
50+ else \
51+ sed -i " s/<TargetFrameworks>.*<\\ /TargetFrameworks>/<TargetFramework>net8.0<\\ /TargetFramework>/" src/OpenFga.Sdk/OpenFga.Sdk.csproj && \
52+ sed -i " s/<TargetFrameworks>.*<\\ /TargetFrameworks>/<TargetFramework>net8.0<\\ /TargetFramework>/" src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj; \
53+ fi
54+
55+ @# Run formatting
56+ @dotnet restore ./OpenFga.Sdk.sln
57+ @dotnet format ./OpenFga.Sdk.sln || true
58+
59+ @# Restore original project files
60+ @mv src/OpenFga.Sdk/OpenFga.Sdk.csproj.bak src/OpenFga.Sdk/OpenFga.Sdk.csproj
61+ @mv src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj.bak src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj
62+ @echo " ✅ Code formatting applied successfully!"
63+
64+ # Convenience target to run all checks
65+ check : lint test
66+ @echo " ✨ All checks completed successfully!"
0 commit comments