Skip to content

Commit dadb767

Browse files
committed
Fix merge conflict
2 parents 9c3ca06 + a6c11a2 commit dadb767

File tree

111 files changed

+2623
-795
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+2623
-795
lines changed

.github/workflows/benchmarks.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Benchmarks
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
tags:
8+
- '*'
9+
paths-ignore:
10+
- README.md
11+
pull_request:
12+
branches:
13+
- '*'
14+
15+
env:
16+
LATEST_NET_VERSION: '9.0.x'
17+
PathToCommunityToolkitAnalyzersBenchmarkCsproj: 'src/CommunityToolkit.Maui.Analyzers.Benchmarks/CommunityToolkit.Maui.Analyzers.Benchmarks.csproj'
18+
19+
concurrency:
20+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
21+
cancel-in-progress: true
22+
23+
jobs:
24+
run_benchmarks:
25+
name: Run Benchmarks
26+
runs-on: ${{ matrix.os }}
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
os: [windows-latest, macos-15]
31+
32+
steps:
33+
- name: Checkout code
34+
uses: actions/checkout@main
35+
36+
- uses: maxim-lobanov/setup-xcode@v1
37+
if: runner.os == 'macOS'
38+
with:
39+
xcode-version: latest-stable
40+
41+
- name: Install Latest Version of .NET, v${{ env.LATEST_NET_VERSION }}
42+
uses: actions/setup-dotnet@v4
43+
with:
44+
dotnet-version: ${{ env.LATEST_NET_VERSION }}
45+
dotnet-quality: 'ga'
46+
47+
- name: Install .NET MAUI Workload
48+
run: |
49+
dotnet workload install maui
50+
dotnet workload update
51+
52+
- name: Install Tizen Workload
53+
run: |
54+
Invoke-WebRequest 'https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.ps1' -OutFile 'workload-install.ps1'
55+
.\workload-install.ps1
56+
shell: pwsh
57+
58+
- name: Display dotnet info
59+
run: dotnet --info
60+
61+
- name: Run Benchmarks
62+
run: dotnet run --project ${{ env.PathToCommunityToolkitAnalyzersBenchmarkCsproj }} -c Release -- -a ${{ runner.temp }}
63+
64+
- name: Publish Benchmarks
65+
if: runner.os == 'Windows'
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: Benchmarks
69+
path: |
70+
${{ runner.temp }}/**/*.md

.github/workflows/dotnet-build.yml

Lines changed: 83 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: .NET
1+
name: Build
22

33
on:
44
push:
@@ -32,7 +32,7 @@ env:
3232
PathToCommunityToolkitMediaElementCsproj: 'src/CommunityToolkit.Maui.MediaElement/CommunityToolkit.Maui.MediaElement.csproj'
3333
PathToCommunityToolkitMapsCsproj: 'src/CommunityToolkit.Maui.Maps/CommunityToolkit.Maui.Maps.csproj'
3434
PathToCommunityToolkitSampleCsproj: 'samples/CommunityToolkit.Maui.Sample/CommunityToolkit.Maui.Sample.csproj'
35-
PathToCommunityToolkitUnitTestCsproj: 'src/CommunityToolkit.Maui.UnitTests/CommunityToolkit.Maui.UnitTests.csproj'
35+
PathToCommunityToolkitUnitTestCsproj: 'src/CommunityToolkit.Maui.UnitTests'
3636
PathToCommunityToolkitAnalyzersCsproj: 'src/CommunityToolkit.Maui.Analyzers/CommunityToolkit.Maui.Analyzers.csproj'
3737
PathToCommunityToolkitCameraAnalyzersCsproj: 'src/CommunityToolkit.Maui.Camera.Analyzers/CommunityToolkit.Maui.Camera.Analyzers.csproj'
3838
PathToCommunityToolkitMediaElementAnalyzersCsproj: 'src/CommunityToolkit.Maui.MediaElement.Analyzers/CommunityToolkit.Maui.MediaElement.Analyzers.csproj'
@@ -41,16 +41,21 @@ env:
4141
PathToCommunityToolkitAnalyzersCodeFixCsproj: 'src/CommunityToolkit.Maui.Analyzers.CodeFixes/CommunityToolkit.Maui.Analyzers.CodeFixes.csproj'
4242
PathToCommunityToolkitCameraAnalyzersCodeFixCsproj: 'src/CommunityToolkit.Maui.Camera.Analyzers.CodeFixes/CommunityToolkit.Maui.Camera.Analyzers.CodeFixes.csproj'
4343
PathToCommunityToolkitMediaElementAnalyzersCodeFixCsproj: 'src/CommunityToolkit.Maui.MediaElement.Analyzers.CodeFixes/CommunityToolkit.Maui.MediaElement.Analyzers.CodeFixes.csproj'
44-
PathToCommunityToolkitAnalyzersUnitTestCsproj: 'src/CommunityToolkit.Maui.Analyzers.UnitTests/CommunityToolkit.Maui.Analyzers.UnitTests.csproj'
45-
DotNetMauiRollbackFile: 'https://maui.blob.core.windows.net/metadata/rollbacks/8.0.6.json'
44+
PathToCommunityToolkitAnalyzersUnitTestCsproj: 'src/CommunityToolkit.Maui.Analyzers.UnitTests'
45+
PathToCommunityToolkitAnalyzersBenchmarkCsproj: 'src/CommunityToolkit.Maui.Analyzers.Benchmarks/CommunityToolkit.Maui.Analyzers.Benchmarks.csproj'
4646
CommunityToolkitSampleApp_Xcode_Version: '16.2'
4747
CommunityToolkitLibrary_Xcode_Version: '16.2'
4848

49+
concurrency:
50+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
51+
cancel-in-progress: true
52+
4953
jobs:
5054
build_sample:
5155
name: Build Sample App using Latest .NET SDK
5256
runs-on: ${{ matrix.os }}
5357
strategy:
58+
fail-fast: false
5459
matrix:
5560
os: [windows-latest, macos-15]
5661
steps:
@@ -60,15 +65,20 @@ jobs:
6065
- name: Set Xcode version
6166
if: runner.os == 'macOS'
6267
run: |
68+
echo Installed Xcode Versions:
69+
ls -al /Applications | grep Xcode
6370
sudo xcode-select --switch /Applications/Xcode_${{ env.CommunityToolkitSampleApp_Xcode_Version }}.app/Contents/Developer
6471
65-
- name: Install Latest .NET SDK
66-
uses: actions/setup-dotnet@v3
72+
- name: Install Latest .NET SDK, v${{ env.LATEST_NET_VERSION }}
73+
uses: actions/setup-dotnet@v4
6774
with:
6875
dotnet-version: ${{ env.LATEST_NET_VERSION }}
76+
dotnet-quality: 'ga'
6977

7078
- name: Install .NET MAUI Workload
71-
run: dotnet workload install maui
79+
run: |
80+
dotnet workload install maui
81+
dotnet workload update
7282
7383
- name: Install Tizen Workload
7484
run: |
@@ -86,6 +96,7 @@ jobs:
8696
name: Build Library
8797
runs-on: ${{ matrix.os }}
8898
strategy:
99+
fail-fast: false
89100
matrix:
90101
os: [windows-latest, macos-15]
91102
steps:
@@ -119,15 +130,20 @@ jobs:
119130
- name: Set Xcode version
120131
if: runner.os == 'macOS'
121132
run: |
133+
echo Installed Xcode Versions:
134+
ls -al /Applications | grep Xcode
122135
sudo xcode-select --switch /Applications/Xcode_${{ env.CommunityToolkitLibrary_Xcode_Version }}.app/Contents/Developer
123136
124-
- name: Install .NET SDK
125-
uses: actions/setup-dotnet@v3
137+
- name: Install .NET SDK v${{ env.TOOLKIT_NET_VERSION }}
138+
uses: actions/setup-dotnet@v4
126139
with:
127140
dotnet-version: ${{ env.TOOLKIT_NET_VERSION }}
141+
dotnet-quality: 'ga'
128142

129143
- name: Install .NET MAUI Workload
130-
run: dotnet workload install maui --skip-sign-check --source https://api.nuget.org/v3/index.json
144+
run: |
145+
dotnet workload install maui
146+
dotnet workload update
131147
132148
- name: Install Tizen Workload
133149
run: |
@@ -138,19 +154,63 @@ jobs:
138154
- name: Display dotnet info
139155
run: dotnet --info
140156

141-
- name: Build CommunityToolkit.Maui
142-
run: dotnet build -c Release ${{ env.PathToLibrarySolution }}
157+
- name: 'Build CommunityToolkit.Maui.Analyzers'
158+
run: dotnet build ${{ env.PathToCommunityToolkitAnalyzersCsproj }} -c Release
159+
160+
- name: 'Build CommunityToolkit.Maui.Analyzers.CodeFixes'
161+
run: dotnet build ${{ env.PathToCommunityToolkitAnalyzersCodeFixCsproj }} -c Release
162+
163+
- name: 'Build CommunityToolkit.Maui.Camera.Analyzers'
164+
run: dotnet build ${{ env.PathToCommunityToolkitCameraAnalyzersCsproj }} -c Release
165+
166+
- name: 'Build CommunityToolkit.Maui.Camera.Analyzers.CodeFixes'
167+
run: dotnet build ${{ env.PathToCommunityToolkitCameraAnalyzersCodeFixCsproj }} -c Release
168+
169+
- name: 'Build CommunityToolkit.Maui.MediaElement.Analyzers'
170+
run: dotnet build ${{ env.PathToCommunityToolkitMediaElementAnalyzersCsproj }} -c Release
171+
172+
- name: 'Build CommunityToolkit.Maui.MediaElement.Analyzers.CodeFixes'
173+
run: dotnet build ${{ env.PathToCommunityToolkitMediaElementAnalyzersCodeFixCsproj }} -c Release
174+
175+
- name: 'Build CommunityToolkit.Maui.SourceGenerators'
176+
run: dotnet build ${{ env.PathToCommunityToolkitSourceGeneratorsCsproj }} -c Release
177+
178+
- name: 'Build CommunityToolkit.SourceGenerators.Internal'
179+
run: dotnet build ${{ env.PathToCommunityToolkitSourceGeneratorsInternalCsproj }} -c Release
143180

144-
- name: Run CommunityToolkit.Maui.UnitTests
145-
run: dotnet test -c Release ${{ env.PathToLibrarySolution }} --settings ".runsettings" --collect "XPlat code coverage" --logger trx --results-directory ${{ runner.temp }}
181+
- name: 'Build CommunityToolkit.Maui.Camera'
182+
run: dotnet build ${{ env.PathToCommunityToolkitCameraCsproj }} -c Release -p:PackageVersion=${{ env.NugetPackageVersionCamera }} -p:Version=${{ env.NugetPackageVersion }}
183+
184+
- name: 'Build CommunityToolkit.Maui.MediaElement'
185+
run: dotnet build ${{ env.PathToCommunityToolkitMediaElementCsproj }} -c Release -p:PackageVersion=${{ env.NugetPackageVersionMediaElement }} -p:Version=${{ env.NugetPackageVersion }}
186+
187+
- name: 'Build CommunityToolkit.Maui.Maps'
188+
run: dotnet build ${{ env.PathToCommunityToolkitMapsCsproj }} -c Release -p:PackageVersion=${{ env.NugetPackageVersionMaps }} -p:Version=${{ env.NugetPackageVersion }}
189+
190+
- name: 'Build CommunityToolkit.Maui.Core'
191+
run: dotnet build ${{ env.PathToCommunityToolkitCoreCsproj }} -c Release -p:PackageVersion=${{ env.NugetPackageVersion }} -p:Version=${{ env.NugetPackageVersion }}
192+
193+
- name: 'Build CommunityToolkit.Maui'
194+
run: dotnet build ${{ env.PathToLibrarySolution }} -c Release -p:PackageVersion=${{ env.NugetPackageVersion }} -p:Version=${{ env.NugetPackageVersion }}
195+
196+
- name: Run CommunityToolkit Analyzers UnitTests
197+
run: |
198+
cd ${{ env.PathToCommunityToolkitAnalyzersUnitTestCsproj }}
199+
dotnet run -c Release --results-directory "${{ runner.temp }}" --coverage --coverage-output "${{ runner.temp }}/ut-analyzers.cobertura.xml" --coverage-output-format cobertura --report-xunit
200+
201+
- name: Run CommunityToolkit UnitTests
202+
run: |
203+
cd ${{ env.PathToCommunityToolkitUnitTestCsproj }}
204+
dotnet run -c Release --results-directory "${{ runner.temp }}" --coverage --coverage-output "${{ runner.temp }}/ut.cobertura.xml" --coverage-output-format cobertura --report-xunit
146205
147206
- name: Publish Test Results
148-
if: runner.os == 'Windows'
207+
if: runner.os == 'Windows' && (${{ success() || failure() }})
149208
uses: actions/upload-artifact@v4
150209
with:
151-
name: Test Results
210+
name: Test Results ${{ github.run_number }} ${{ runner.os }}
152211
path: |
153-
${{ runner.temp }}/**/*.trx
212+
${{ runner.temp }}/*.xunit
213+
${{ runner.temp }}/*cobertura.xml
154214
155215
- name: Pack CommunityToolkit.Maui.Core NuGet
156216
run: dotnet pack -c Release ${{ env.PathToCommunityToolkitCoreCsproj }} -p:PackageVersion=${{ env.NugetPackageVersion }}
@@ -198,10 +258,11 @@ jobs:
198258
id-token: write # Required for requesting the JWT
199259

200260
steps:
201-
- name: Install .NET SDK
202-
uses: actions/setup-dotnet@v3
261+
- name: Install .NET SDK v${{ env.TOOLKIT_NET_VERSION }}
262+
uses: actions/setup-dotnet@v4
203263
with:
204264
dotnet-version: ${{ env.TOOLKIT_NET_VERSION }}
265+
dotnet-quality: 'ga'
205266

206267
- name: Download NuGet List
207268
uses: actions/download-artifact@v4
@@ -251,9 +312,10 @@ jobs:
251312

252313
steps:
253314
- name: Install .NET SDK
254-
uses: actions/setup-dotnet@v3
315+
uses: actions/setup-dotnet@v4
255316
with:
256317
dotnet-version: ${{ env.TOOLKIT_NET_VERSION }}
318+
dotnet-quality: 'ga'
257319

258320
- name: Download signed packages for ${{ matrix.platform }}
259321
uses: actions/download-artifact@v4
@@ -267,4 +329,4 @@ jobs:
267329
**/*.nupkg
268330
--source https://api.nuget.org/v3/index.json
269331
--api-key ${{ secrets.NUGET_PACKAGE_PUSH_TOKEN }}
270-
--skip-duplicate
332+
--skip-duplicate

0 commit comments

Comments
 (0)