Skip to content

Commit 3222935

Browse files
committed
Added a top-level Makefile in dotnet-sdk to simplify running tests and linters
1 parent d596eeb commit 3222935

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

Makefile

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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

Comments
 (0)