1+ name : ' Daily Perf Improver Build Steps'
2+ description : ' Sets up the environment and builds FSharp.Control.AsyncSeq for performance testing and development'
3+ runs :
4+ using : ' composite'
5+ steps :
6+ - name : Setup .NET SDK
7+ uses : actions/setup-dotnet@v3
8+ with :
9+ dotnet-version : ' 8.0.x'
10+ dotnet-quality : ' ga'
11+
12+ - name : Restore dependencies
13+ shell : bash
14+ run : dotnet restore
15+
16+ - name : Build solution in Release mode
17+ shell : bash
18+ run : dotnet build -c Release --no-restore
19+
20+ - name : Run tests to verify build
21+ shell : bash
22+ run : dotnet test -c Release --no-build --logger trx --results-directory TestResults/
23+
24+ - name : Run performance baseline test
25+ shell : bash
26+ run : dotnet fsi tests/FSharp.Control.AsyncSeq.Tests/AsyncSeqPerf.fsx
27+
28+ - name : Setup tools for performance analysis
29+ shell : bash
30+ run : |
31+ # Install dotnet tools for performance analysis (if needed)
32+ echo "Build environment ready for performance testing"
33+ echo "Available tools:"
34+ echo "- dotnet build/test for regular builds"
35+ echo "- dotnet fsi for F# Interactive and performance scripts"
36+ echo "- Release builds available in src/FSharp.Control.AsyncSeq/bin/Release/"
37+ echo "- Test results in TestResults/"
38+
39+ - name : Display environment info
40+ shell : bash
41+ run : |
42+ echo "=== Environment Information ==="
43+ echo "Operating System: $(uname -a)"
44+ echo ".NET Version: $(dotnet --version)"
45+ echo "F# Compiler: $(dotnet fsc --version 2>/dev/null || echo 'F# Compiler available via dotnet')"
46+ echo "Working Directory: $(pwd)"
47+ echo "Available cores: $(nproc)"
48+ echo "Memory: $(free -h | head -n 2)"
49+ echo "=== Build Artifacts ==="
50+ find src/FSharp.Control.AsyncSeq/bin/Release -type f -name "*.dll" 2>/dev/null || echo "No build artifacts found"
0 commit comments