Skip to content

Commit 51003d2

Browse files
committed
Run target benchmarks in parallel
1 parent 093c7ef commit 51003d2

2 files changed

Lines changed: 75 additions & 5 deletions

File tree

.github/workflows/dotnet.yml

Lines changed: 72 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ jobs:
5656
- name: Test .NET 8.0
5757
run: dotnet test --no-build --verbosity normal -f net8.0
5858

59-
benchmark-windows:
59+
benchmark-windows-net48:
6060

6161
runs-on: windows-latest
62-
timeout-minutes: 420 #7 hours
62+
timeout-minutes: 320 #6 hours
6363
needs: build-windows
6464
if: ${{ github.ref == 'refs/heads/main' }}
6565

@@ -77,9 +77,77 @@ jobs:
7777
run: dotnet restore
7878
- name: Build
7979
run: dotnet build --no-restore
80-
- name: Execute
80+
- name: Execute .NET Framework 4.8
8181
working-directory: ./SerializersBenchmark
82-
run: dotnet run -c Release -f net8.0 -- --runtimes net48 net6.0 net8.0 --filter *
82+
run: dotnet run -c Release -f net48 -- --runtimes net48 --filter *
83+
- name: Publish Results
84+
uses: actions/upload-artifact@v4
85+
with:
86+
name: net48
87+
path: ./SerializersBenchmark/BenchmarkDotNet.Artifacts/results
88+
compression-level: 9
89+
90+
benchmark-windows-net6:
91+
92+
runs-on: windows-latest
93+
timeout-minutes: 320 #6 hours
94+
needs: build-windows
95+
if: ${{ github.ref == 'refs/heads/main' }}
96+
97+
steps:
98+
- uses: actions/checkout@v4
99+
- name: Setup .NET 6
100+
uses: actions/setup-dotnet@v4
101+
with:
102+
dotnet-version: 6.0.x
103+
- name: Setup .NET 8
104+
uses: actions/setup-dotnet@v4
105+
with:
106+
dotnet-version: 8.0.x
107+
- name: Restore dependencies
108+
run: dotnet restore
109+
- name: Build
110+
run: dotnet build --no-restore
111+
- name: Execute .NET 6
112+
working-directory: ./SerializersBenchmark
113+
run: dotnet run -c Release -f net6.0 -- --runtimes net6.0 --filter *
114+
- name: Publish Results
115+
uses: actions/upload-artifact@v4
116+
with:
117+
name: net6
118+
path: ./SerializersBenchmark/BenchmarkDotNet.Artifacts/results
119+
compression-level: 9
120+
121+
benchmark-windows-net8:
122+
123+
runs-on: windows-latest
124+
timeout-minutes: 360 #6 hours
125+
needs: build-windows
126+
if: ${{ github.ref == 'refs/heads/main' }}
127+
128+
steps:
129+
- uses: actions/checkout@v4
130+
- name: Setup .NET 6
131+
uses: actions/setup-dotnet@v4
132+
with:
133+
dotnet-version: 6.0.x
134+
- name: Setup .NET 8
135+
uses: actions/setup-dotnet@v4
136+
with:
137+
dotnet-version: 8.0.x
138+
- name: Restore dependencies
139+
run: dotnet restore
140+
- name: Build
141+
run: dotnet build --no-restore
142+
- name: Execute .NET 8
143+
working-directory: ./SerializersBenchmark
144+
run: dotnet run -c Release -f net8.0 -- --runtimes net8.0 --filter *
145+
- name: Publish Results
146+
uses: actions/upload-artifact@v4
147+
with:
148+
name: net8
149+
path: ./SerializersBenchmark/BenchmarkDotNet.Artifacts/results
150+
compression-level: 9
83151

84152
#TODO process results
85153

SerializersBenchmark/Program.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ public class Program
66
{
77
static void Main(string[] args)
88
{
9-
//dotnet run -c Release -f net8.0 -- --runtimes net48 net6.0 net8.0 --filter *
9+
//dotnet run -c Release -f net8.0 -- --runtimes net8.0 --filter *
10+
//dotnet run -c Release -f net6.0 -- --runtimes net6.0 --filter *
11+
//dotnet run -c Release -f net48 -- --runtimes net48 --filter *
1012
BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);
1113
}
1214
}

0 commit comments

Comments
 (0)