1- name : .NET
1+ name : Build
22
33on :
44 push :
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'
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+
4953jobs :
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 : |
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