1
- name : .NET
1
+ name : Build
2
2
3
3
on :
4
4
push :
32
32
PathToCommunityToolkitMediaElementCsproj : ' src/CommunityToolkit.Maui.MediaElement/CommunityToolkit.Maui.MediaElement.csproj'
33
33
PathToCommunityToolkitMapsCsproj : ' src/CommunityToolkit.Maui.Maps/CommunityToolkit.Maui.Maps.csproj'
34
34
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'
36
36
PathToCommunityToolkitAnalyzersCsproj : ' src/CommunityToolkit.Maui.Analyzers/CommunityToolkit.Maui.Analyzers.csproj'
37
37
PathToCommunityToolkitCameraAnalyzersCsproj : ' src/CommunityToolkit.Maui.Camera.Analyzers/CommunityToolkit.Maui.Camera.Analyzers.csproj'
38
38
PathToCommunityToolkitMediaElementAnalyzersCsproj : ' src/CommunityToolkit.Maui.MediaElement.Analyzers/CommunityToolkit.Maui.MediaElement.Analyzers.csproj'
41
41
PathToCommunityToolkitAnalyzersCodeFixCsproj : ' src/CommunityToolkit.Maui.Analyzers.CodeFixes/CommunityToolkit.Maui.Analyzers.CodeFixes.csproj'
42
42
PathToCommunityToolkitCameraAnalyzersCodeFixCsproj : ' src/CommunityToolkit.Maui.Camera.Analyzers.CodeFixes/CommunityToolkit.Maui.Camera.Analyzers.CodeFixes.csproj'
43
43
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 '
46
46
CommunityToolkitSampleApp_Xcode_Version : ' 16.2'
47
47
CommunityToolkitLibrary_Xcode_Version : ' 16.2'
48
48
49
+ concurrency :
50
+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
51
+ cancel-in-progress : true
52
+
49
53
jobs :
50
54
build_sample :
51
55
name : Build Sample App using Latest .NET SDK
52
56
runs-on : ${{ matrix.os }}
53
57
strategy :
58
+ fail-fast : false
54
59
matrix :
55
60
os : [windows-latest, macos-15]
56
61
steps :
@@ -60,15 +65,20 @@ jobs:
60
65
- name : Set Xcode version
61
66
if : runner.os == 'macOS'
62
67
run : |
68
+ echo Installed Xcode Versions:
69
+ ls -al /Applications | grep Xcode
63
70
sudo xcode-select --switch /Applications/Xcode_${{ env.CommunityToolkitSampleApp_Xcode_Version }}.app/Contents/Developer
64
71
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
67
74
with :
68
75
dotnet-version : ${{ env.LATEST_NET_VERSION }}
76
+ dotnet-quality : ' ga'
69
77
70
78
- name : Install .NET MAUI Workload
71
- run : dotnet workload install maui
79
+ run : |
80
+ dotnet workload install maui
81
+ dotnet workload update
72
82
73
83
- name : Install Tizen Workload
74
84
run : |
86
96
name : Build Library
87
97
runs-on : ${{ matrix.os }}
88
98
strategy :
99
+ fail-fast : false
89
100
matrix :
90
101
os : [windows-latest, macos-15]
91
102
steps :
@@ -119,15 +130,20 @@ jobs:
119
130
- name : Set Xcode version
120
131
if : runner.os == 'macOS'
121
132
run : |
133
+ echo Installed Xcode Versions:
134
+ ls -al /Applications | grep Xcode
122
135
sudo xcode-select --switch /Applications/Xcode_${{ env.CommunityToolkitLibrary_Xcode_Version }}.app/Contents/Developer
123
136
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
126
139
with :
127
140
dotnet-version : ${{ env.TOOLKIT_NET_VERSION }}
141
+ dotnet-quality : ' ga'
128
142
129
143
- 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
131
147
132
148
- name : Install Tizen Workload
133
149
run : |
@@ -138,19 +154,63 @@ jobs:
138
154
- name : Display dotnet info
139
155
run : dotnet --info
140
156
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
143
180
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
146
205
147
206
- name : Publish Test Results
148
- if : runner.os == 'Windows'
207
+ if : runner.os == 'Windows' && (${{ success() || failure() }})
149
208
uses : actions/upload-artifact@v4
150
209
with :
151
- name : Test Results
210
+ name : Test Results ${{ github.run_number }} ${{ runner.os }}
152
211
path : |
153
- ${{ runner.temp }}/**/*.trx
212
+ ${{ runner.temp }}/*.xunit
213
+ ${{ runner.temp }}/*cobertura.xml
154
214
155
215
- name : Pack CommunityToolkit.Maui.Core NuGet
156
216
run : dotnet pack -c Release ${{ env.PathToCommunityToolkitCoreCsproj }} -p:PackageVersion=${{ env.NugetPackageVersion }}
@@ -198,10 +258,11 @@ jobs:
198
258
id-token : write # Required for requesting the JWT
199
259
200
260
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
203
263
with :
204
264
dotnet-version : ${{ env.TOOLKIT_NET_VERSION }}
265
+ dotnet-quality : ' ga'
205
266
206
267
- name : Download NuGet List
207
268
uses : actions/download-artifact@v4
@@ -251,9 +312,10 @@ jobs:
251
312
252
313
steps :
253
314
- name : Install .NET SDK
254
- uses : actions/setup-dotnet@v3
315
+ uses : actions/setup-dotnet@v4
255
316
with :
256
317
dotnet-version : ${{ env.TOOLKIT_NET_VERSION }}
318
+ dotnet-quality : ' ga'
257
319
258
320
- name : Download signed packages for ${{ matrix.platform }}
259
321
uses : actions/download-artifact@v4
@@ -267,4 +329,4 @@ jobs:
267
329
**/*.nupkg
268
330
--source https://api.nuget.org/v3/index.json
269
331
--api-key ${{ secrets.NUGET_PACKAGE_PUSH_TOKEN }}
270
- --skip-duplicate
332
+ --skip-duplicate
0 commit comments