镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
334 commits
Select commit Hold shift + click to select a range
4bf8720
Merge pull request #80 from jonpryor/jonp-drop-net461
joj Feb 26, 2020
461a270
JetBrains OpenJDK 11 detection (#82)
grendello Apr 15, 2020
1bc75cf
[AndroidSdkWindows] Guard against exception checking registry (#79)
jpobst Apr 16, 2020
846e3ec
[Xamarin.Android.Tools.AndroidSdk] Add support for cmdline-tools (#83)
DmitriyKirakosyan Apr 30, 2020
0f984ed
[Xamarin.Android.Tools.AndroidSdk] Preview Build-Tools are Last (#85)
jonpryor Jun 2, 2020
b7b03d4
[Xamarin.Android.Tools.AndroidSdk] Nullable Reference Type support (#84)
jonpryor Jun 2, 2020
7aad57e
Delete NuGet.Config
jonpryor Jun 2, 2020
fd4e508
[Xamarin.Android.Tools.AndroidSdk] Prefer JAVA_HOME (#86)
jonpryor Jun 4, 2020
08f6a52
[Xamarin.Android.Tools.AndroidSdk] Improve utility of JDK warnings (#87)
jonpryor Jun 4, 2020
2c41c91
[Xamarin.Android.Tools.AndroidSdk] JdkInfo + JDK11 + Windows (#88)
jonpryor Jun 4, 2020
eca4212
Return a default for unknown API levels (#90)
jonathanpeppers Jun 30, 2020
f86bc57
[build] fail macOS build if tests fail (#94)
jonathanpeppers Jul 1, 2020
0551999
[Xamarin.Android.Tools.AndroidSdk] Default SDK component versions (#93)
dellis1972 Jul 1, 2020
f3ebd96
[Xamarin.Android.Tools.AndroidSdk] Add API-29, API-30 to KnownVersion…
jonathanpeppers Jul 8, 2020
644054c
Fix sort ordering for ndk-bundle, add macOS support (#91)
jonathanpeppers Jul 14, 2020
b393aef
[Xamarin.Android.Tools.AndroidSdk] Fix a few nullability warnings (#97)
jpobst Sep 25, 2020
d392eea
[Xamarin.Android.Tools.AndroidSdk] Error & Warning Localization (#96)
moljac Oct 3, 2020
38c2ff0
[Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-30 (#99)
jonpryor Oct 19, 2020
3155275
[ci] Use the new "main" default branch (#100)
brendanzagaeski Dec 15, 2020
ad51136
[tests] Use dotnet test to run AndroidSdk-Tests (#102)
pjcollins Jan 5, 2021
c22503d
[NDK] Locate and select only compatible NDK versions (#103)
grendello Jan 20, 2021
ae35096
Add Microsoft.Android.Build.BaseTasks project (#101)
pjcollins Feb 2, 2021
0aa9447
Bump ta xamarin/LibZipSharp/1.0.22@9f563dd1 (#104)
dellis1972 Feb 8, 2021
9259036
[ci] Update packageSources in NuGet.config (#105)
jonpryor Feb 9, 2021
fd602f3
[build] Move global.json file to root directory (#106)
pjcollins Feb 9, 2021
b89927f
Bump to xamarin/LibZipSharp/main@521b54ec [1.0.23] (#109)
dellis1972 Feb 25, 2021
672c5da
[macOS] fix DirectoryNotFoundException on clean systems (#110)
jonathanpeppers Mar 1, 2021
6b4f68e
Bump to xamarin/LibZipSharp/main@86f8ae57 [1.0.24] (#111)
dellis1972 Mar 2, 2021
d2e7bf7
[Xamarin.Android.Tools.AndroidSdk] Fix CS8600 in AndroidSdkBase (#107)
jpobst Mar 2, 2021
e554095
[Xamarin.Android.Tools.AndroidSdk] Fix quotes in %PATH% or %PATHEXT% …
jonathanpeppers Mar 17, 2021
5dcd287
[Xamarin.Android.Tools.AndroidSdk] Probe for Microsoft OpenJDK dirs (…
jonpryor Mar 24, 2021
229cedd
[Xamarin.Android.Tools.AndroidSdk] Probe for Zulu JDK (#114)
jonpryor Apr 19, 2021
6a21af2
[Xamarin.Android.Tools.AndroidSdk] Probe for AdoptOpenJDK Locations (…
jonpryor Apr 19, 2021
ac16183
[Xamarin.Android.Tools.AndroidSdk] Fix CS0168 warning (#116)
jonpryor Apr 21, 2021
1f3ea0a
[Xamarin.Android.Tools.AndroidSdk] Support Microsoft Dist JDK (#117)
jonpryor Apr 26, 2021
1e888d6
[Microsoft.Android.Build] Use MSBuild NuGets (#118)
pjcollins Apr 29, 2021
fa528d2
Add SECURITY.md (#119)
jpobst May 24, 2021
391f7a9
[JdkInfo] handle invalid XML from /usr/libexec/java_home (#120)
jonathanpeppers Jun 4, 2021
6db2428
[BaseTasks] add ABI detection for RIDs (#121)
jonathanpeppers Jun 4, 2021
d48ffd8
Reference the new Mono.Unix nuget (#123)
grendello Jun 8, 2021
64c243a
[BaseTasks] fix `\`-delimited paths on macOS (#122)
jonathanpeppers Jun 8, 2021
10646ad
Bump LibZipSharp to 2.0.0-alpha6
grendello Jun 10, 2021
3560738
Merge pull request #124 from xamarin/update-libzipsharp
grendello Jun 10, 2021
a7da026
[Microsoft.Android.Build] Bump to MSBuild 16.10.0 (#125)
pjcollins Jun 17, 2021
d307b79
Bump LibZipSharp to 2.0.0-alpha7 (#126)
grendello Jun 22, 2021
3a79542
[NDK] Properly detect 64-bit NDK
grendello Jul 6, 2021
743f263
[Microsoft.Android.Build.BaseTasks] add StrongName (#127)
dellis1972 Jul 19, 2021
b2791fa
Bump LibZipSharp and Mono.Unix to latest stable versions,
dellis1972 Jul 20, 2021
23ea1c9
Merge pull request #128 from dellis1972/bumpitybump
grendello Jul 20, 2021
7ee5960
[BaseTasks] improve Task settings in AsyncTaskExtensions (#129)
jonathanpeppers Jul 29, 2021
4b7c961
[Xamarin.Android.Tools.AndroidSdk] More Microsoft Dist JDK Support (#…
jonpryor Aug 11, 2021
e7508a2
[Xamarin.Android.Tools.AndroidSdk] Eclipse Adoptium support (#132)
jonpryor Aug 17, 2021
0ae5aa2
[build] Use GitInfo to generate $(Version) (#131)
dellis1972 Aug 19, 2021
cacc39e
Merge pull request #133 from xamarin/ndk-r23
grendello Aug 23, 2021
38230e9
[Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-31 (#…
jonpryor Sep 15, 2021
b90d233
[Xamarin.Android.Tools.AndroidSdk] Downgrade build-tools to API-30
jonpryor Sep 15, 2021
9bc9119
[build] Import "parent directory.override.targets" (#135)
Sep 24, 2021
53a3a88
[build] Allow Assembly "vendorization" (#136)
jonpryor Sep 27, 2021
3affb89
[Xamarin.Android.Tools.AndroidSdk] Add JdkInfo.GetSupportedJdkInfos()…
tondat Oct 27, 2021
8eda1b1
[Xamarin.Android.Tools.AndroidSdk] Add API-31 to KnownVersions (#141)
pjcollins Oct 27, 2021
4eae2e3
[Xamarin.Android.Tools.AndroidSdk] Parse Properties after header (#143)
jonpryor Nov 4, 2021
8f4f940
Update MaximumCompatibleNDKMajorVersion to be 23 (#144)
dellis1972 Nov 12, 2021
63c898e
Add resource dlls to MicroBuild signing. (#145)
mattnorflus Dec 1, 2021
ea47605
[build] Add d17-* as a branch trigger
jonpryor Dec 16, 2021
c7430c8
Bump LibZipSharp to 2.0.2 (#149)
dellis1972 Jan 24, 2022
b43f651
Fix Typo in commit c7430c88 (#150)
dellis1972 Jan 24, 2022
3d02e07
Bump LibZipSharp to 2.0.3 (#151)
dellis1972 Jan 26, 2022
70d1830
Adding condition to GetFilesToSign to only include files if build con…
mattnorflus Jan 26, 2022
29c27aa
Merge pull request #152 from xamarin/dev/mattnorflus/SigningMigration
mattnorflus Feb 7, 2022
b1e9825
[ci] Mention new NuGet feed and release (#153)
pjcollins Feb 10, 2022
d78d3f6
[Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-32 (#…
jonpryor Feb 18, 2022
1328f8d
Revert "[Xamarin.Android.Tools.AndroidSdk] Update SDK component for A…
jonpryor Feb 24, 2022
f820356
[Xamarin.Android.Tools.AndroidSdk] Attributes can be null! (#158)
jonpryor Feb 25, 2022
4797850
Bump to Microsoft.VisualStudioEng.MicroBuild.Core 1.0.0 (#159)
mcumming Mar 15, 2022
a2fcb1e
Add support for writing android:roundIcon to Android manifest (#162)
japarson Mar 21, 2022
278d525
Bump LibZipSharp to 2.0.4 (#166)
dellis1972 May 3, 2022
200a286
[Xamarin.Android.Tools.AndroidSdk] AndroidSdkInfo validation locator …
jonpryor Jun 13, 2022
933f2fb
[Xamarin.Android.Tools.AndroidSdk] Permit NDK r24 (#171)
jonpryor Jun 14, 2022
d44917e
[Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-32 (#…
jonpryor Jun 15, 2022
26fa79b
[Xamarin.Android.Tools.AndroidSdk] Add API-32 to KnownVersions
tondat Jun 23, 2022
cfa13e5
[Localization] Add OneLocBuild job (#175)
pjcollins Jul 18, 2022
1c7c008
LEGO: Merge pull request 182
csigs Jul 19, 2022
e0be7f9
[ci] Use latest macOS and Windows images (#181)
pjcollins Jul 19, 2022
7ae4182
[ci] Run OneLocBuild on a schedule (#180)
pjcollins Jul 20, 2022
ae0229e
[Xamarin.Android.Tools.AndroidSdk] Add API-33 to KnownVersions
tondat Jul 25, 2022
95adbae
[Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-33 (#…
tondat Jul 25, 2022
8c54f41
Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_202207…
csigs Jul 29, 2022
434b923
Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_202207…
csigs Jul 29, 2022
950b65f
LEGO: Merge pull request 187
csigs Jul 31, 2022
88622a7
Avoid `Environment.SpecialFolder.ApplicationData` (#188)
Aug 2, 2022
2a0f35f
[Xamarin.Android.Tools.AndroidSdk] Permit NDK r25 (#190)
jonathanpeppers Aug 4, 2022
76d8e7c
[Localization] Import translated resx files (#189)
vs-mobiletools-engineering-service2 Aug 5, 2022
43cc004
[ci] Use Microsoft.SourceLink.GitHub (#192)
jonpryor Aug 23, 2022
e4e6cdf
Bump to mono/mono.posix@d8994ca, xamarin/LibZipSharp@98e9173 (#193)
grendello Aug 24, 2022
221db21
Use Environment.SpecialFolder.UserProfile, not SpecialFolder.Personal…
eerhardt Sep 15, 2022
9ac7351
Move from `netcoreapp3.1` to `net6.0` (#195)
jonathanpeppers Oct 11, 2022
7c4faba
Enable CodeQL (#197)
dellis1972 Nov 8, 2022
828da70
[build] Update NuGet package versions (#196)
jonpryor Nov 17, 2022
7cf9e6e
Add reference to System.Security.Cryptography.Xml (#198)
pjcollins Nov 30, 2022
00664af
Add support for Project Specific RegisterTaskObject. (#199)
dellis1972 Jan 11, 2023
4589fbd
Fix CS0121 ambiguity errors. (#200)
jonpryor Jan 11, 2023
6d603f5
Revert IBuildEngine.ProjectFileOfTaskNode use. (#201)
jonpryor Jan 13, 2023
adc053a
Add *Task.ProjectSpecificTaskObjectKey() for RegisterTaskObject() use…
dellis1972 Jan 18, 2023
a2dce0d
Bump LibZipSharp version (#204)
grendello Feb 27, 2023
352c3ee
[Xamarin.Android.Tools.AndroidSdk] Update platform-tools for API-T (#…
dellis1972 Apr 19, 2023
3120347
[ci] Add weekly schedule for OneLocBuild (#207)
pjcollins May 11, 2023
860930b
[Xamarin.Android.Tools.AndroidSdk] Fix NRT warnings (#206)
jpobst May 12, 2023
eb0f8b0
[Build Tasks] Add LogErrorForXmlNode (#209)
pjcollins May 31, 2023
30edee4
Bump LibZipSharp to 3.0.0 (#210)
dellis1972 Jun 9, 2023
52f0340
[Xamarin.Android.Tools.AndroidSdk] Add API-34 to KnownVersions (#212)
tondat Aug 3, 2023
5c9f5f9
[Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-34 (#…
tondat Aug 3, 2023
21e7049
[Xamarin.Android.Tools.AndroidSdk] Check all <intent-filter/>s (#214)
jonpryor Aug 5, 2023
e60e66e
[build] set `$(DisableTransitiveFrameworkReferenceDownloads)`=true (#…
jonathanpeppers Aug 23, 2023
6798a36
Update OpenJDK location for OpenJDK17 on windows
tondat Sep 19, 2023
211acf9
Merge pull request #217 from xamarin/dev/tondat/main-openjdkms
MSLukeWest Sep 19, 2023
27a7573
Update the maximum NDK version to 26 (#219)
grendello Nov 15, 2023
5bfd20d
Bump android-sdk platforms-tools to version 34.0.5
tondat Nov 9, 2023
f568ff3
Bump android-sdk cmdline-tools to version 11.0
tondat Nov 9, 2023
a5c9484
Bump android-sdk build-tool version to 34.0.0
tondat Nov 16, 2023
e774235
Bump android-sdk NDK version to 26.1.10909125
tondat Nov 16, 2023
11685db
[build] update $(MSBuildPackageReferenceVersion) to 17.6.3 (#221)
jonathanpeppers Nov 30, 2023
1df348b
[MSBuildReferences.projitems] Require opt-in to use `Microsoft.Build`…
jpobst Nov 30, 2023
a198c38
[ci] Add API Scan job (#225)
pjcollins Jan 17, 2024
04932b3
[ci] Only enable CodeQL on Windows build job (#224)
pjcollins Jan 17, 2024
ea1dfe6
[Xamarin.Android.Tools.Versions] Add JavaSdkVersion (#226)
pjcollins Jan 23, 2024
379559f
Only conditionally include <uses-sdk /> in the AndroidManifest.xml wh…
jstedfast Feb 7, 2024
65cd962
Added unit tests
jstedfast Feb 8, 2024
7cbae1d
Merge pull request #227 from xamarin/dev/jestedfa/uses-sdk
jstedfast Feb 8, 2024
0861c74
Bump LibZipSharp to 3.1.1 (#228)
dellis1972 Feb 22, 2024
b5c4001
[ci] Disable API Scan on xamarin/public (#231)
pjcollins Apr 11, 2024
89a369c
Check for ANDROID_HOME Sdk location on Windows. (#230)
dellis1972 Apr 17, 2024
9b1da88
[AndroidToolTask] Log tool output as error (#229)
pjcollins Apr 19, 2024
d1431d8
[ci] Update OneLocBuildToken (#233)
MSylvia May 22, 2024
a0e4fe3
Force loc task pool image to windows (#234)
MSylvia May 24, 2024
c7931f4
Bump LibZipSharp and Xamarin.Build.AsyncTask (#236)
dellis1972 Jun 11, 2024
68f510e
Bump to dotnet/msbuild/v17.9.5@33de0b22 (#232)
dellis1972 Jun 11, 2024
6b91f05
Update README.md and build scripts (#238)
pjcollins Jun 13, 2024
17bd3ce
Update pipeline and pipeline info in README.md (#239)
pjcollins Jun 14, 2024
b90c837
[BaseTasks] Import Xamarin.Build.AsyncTask (#237)
pjcollins Jun 27, 2024
6063311
Be explicit about FileShare mode when using FileStream. (#240)
dellis1972 Aug 6, 2024
4e14f0a
Bump to dotnet/msbuild@10fbfbf2 (#241)
pjcollins Aug 20, 2024
65bb521
[Xamarin.Android.Tools.AndroidSdk] Add API-35 to KnownVersions (#243)
anchimna Sep 4, 2024
6e929d0
[Microsoft.Android.Build.BaseTasks] report locked files in XA*7024 (#…
jonathanpeppers Sep 5, 2024
aad0681
[Microsoft.Android.Build.BaseTasks] report locked files for Unauthori…
jonathanpeppers Sep 12, 2024
eaf6f0a
[Microsoft.Android.Build.BaseTasks] retry when copying files (#245)
dellis1972 Oct 22, 2024
2e0c586
Add support to discovering activity-alias activity elements (#247)
dellis1972 Dec 3, 2024
904b5a4
[Xamarin.Android.Tools.AndroidSdk] Remove hardcoded Path (#248)
dellis1972 Jan 14, 2025
20279fd
[ci] Move PR build to dnceng public (#249)
pjcollins Feb 20, 2025
01a32f2
[Xamarin.Android.Tools.AndroidSdk] OS-specific dirs are OS-specific (…
jonpryor Mar 21, 2025
a4a8dec
[build] Update to net9.0 and netstandard2.0 (#251)
pjcollins Apr 22, 2025
ef1cdd4
[msbuild] remove `Xamarin.Android.Tools.Versions.props` (#253)
jonathanpeppers Jun 4, 2025
6f23f9e
[Xamarin.Android.Tools.AndroidSdk] Add API-36 to `KnownVersions` (#254)
jonathanpeppers Jun 9, 2025
9850bed
Return empty properties when `java` fails to run (#255)
emaf Jun 27, 2025
f7f4cbe
[build] add net9.0 & timmer/aot compatibility (#256)
jonathanpeppers Jul 16, 2025
3bf40ab
[build] add way to opt out of multi-targeting (#257)
jonathanpeppers Jul 17, 2025
b414b3b
[build] set `$(PackageVersion)` in `SetVersion` target (#258)
jonathanpeppers Jul 22, 2025
44b0669
[build] introduce `$(PackageVersionSuffix)` for dotnet/android (#259)
jonathanpeppers Jul 23, 2025
56d6a61
[Microsoft.Android.Build.BaseTasks] update to MSBuild 17.14.8 (#260)
jonathanpeppers Aug 11, 2025
f5221d2
[Xamarin.Android.Tools.AndroidSdk] "Minor" SDK version support (#261)
jonpryor Aug 25, 2025
64911c6
[Xamarin.Android.Tools.AndroidSdk] Prefer major versions (#262)
jonpryor Sep 8, 2025
cd8bc24
Allow `MaximumCompatibleNDKMajorVersion=28` (#263)
jonathanpeppers Oct 15, 2025
2468e91
[Xamarin.Android.Tools.AndroidSdk] Add API-36.1 to `KnownVersions` (#…
jonathanpeppers Oct 20, 2025
416ed6b
Update `$(MSBuildPackageReferenceVersion)` to 17.14.28 (#265)
jonathanpeppers Oct 22, 2025
c593d09
[Xamarin.Android.Tools.AndroidSdk] Add Android Studio's Android SDK p…
jonathanpeppers Jan 21, 2026
dd4f5bd
[Xamarin.Android.Tools.AndroidSdk] Prevent fallback to major API leve…
jonathanpeppers Jan 28, 2026
ff04548
Add JDK discovery for user-writable paths on Windows and macOS (#269)
Copilot Feb 5, 2026
643b74a
[build] update to .NET 10 (#286)
jonathanpeppers Feb 24, 2026
3fbd798
[copilot] create minimal `copilot-instructions.md` (#287)
jonathanpeppers Feb 24, 2026
53df58c
Add JDK installation support (Microsoft OpenJDK) (#274)
rmarinho Feb 26, 2026
1c0c4dd
Add `EnvironmentVariableNames` constants for env var management (#290)
rmarinho Feb 27, 2026
16d9d68
Add SDK bootstrap and sdkmanager wrapper (#275)
rmarinho Mar 2, 2026
a36509a
Make `HttpClient` static in `JdkInstaller` (#291)
Copilot Mar 3, 2026
de789c1
[skills] create a skill for reviewing PRs (#292)
jonathanpeppers Mar 4, 2026
4f4eb9c
[skills] new findings for `android-tools-reviewer` skill
jonathanpeppers Mar 4, 2026
4da5a87
[skills] Fix link path in review rules document
jonathanpeppers Mar 5, 2026
d848dcc
[skills] Update link path in review rules document, take 2
jonathanpeppers Mar 5, 2026
5cdd948
Add `AdbRunner` for `adb` CLI operations (#283)
rmarinho Mar 6, 2026
f369962
Setup PublicApi Roslyn analyzer for Xamarin.Android.Tools.AndroidSdk …
Copilot Mar 10, 2026
63042d2
Fix FormatDisplayName to match original dotnet/android implementation
rmarinho Mar 10, 2026
38dcdcb
Merge pull request #295 from dotnet/fix/format-display-name-preserve-…
rmarinho Mar 10, 2026
cbcd7a5
Fix RS0026: split AcceptLicensesAsync into explicit overloads (#298)
rmarinho Mar 11, 2026
b9bdd9c
Add no-whitespace-only-diffs rule to copilot instructions (#296)
rmarinho Mar 11, 2026
df8024b
Fix `CS8604` nullable warning in `AndroidVersion.AlternateIds` (#293)
rmarinho Mar 11, 2026
454874b
Add PublicAPI file update rule to copilot instructions (#297)
rmarinho Mar 11, 2026
b09fd95
[skills] Incorporate review feedback from dotnet/android#10918 (#299)
jonathanpeppers Mar 11, 2026
7e8af5c
[skills] Document dotnet run file.cs for standalone C# scripts
jonathanpeppers Mar 11, 2026
9d6be2c
Add `AvdManagerRunner` for `avdmanager` CLI operations (#282)
rmarinho Mar 12, 2026
dbad7e6
[skills] Add logger pattern rule from PR #282 review
jonathanpeppers Mar 12, 2026
cc45832
[actions] Add `copilot-setup-steps.yml` for Copilot coding agent (#307)
Copilot Mar 13, 2026
48bc6ac
Add EmulatorRunner for emulator CLI operations (#284)
rmarinho Mar 19, 2026
9a86553
[build] Append job attempt number to artifact names on retry (#314)
jonathanpeppers Mar 19, 2026
28f8772
[copilot] Rename copilot-setup-steps job to required name (#316)
jonathanpeppers Mar 19, 2026
5c97caa
[build] Fix `RS0017` warnings and enable `$(TreatWarningsAsErrors)` f…
Copilot Mar 19, 2026
ea02c3e
Fix AdbRunner AVD detection: use getprop first, skip offline emulator…
rmarinho Mar 19, 2026
d4d7407
[copilot-instructions] API design rules from PR #305 review (#317)
rmarinho Mar 19, 2026
deaf9cf
Add ADB reverse port forwarding support (#305)
rmarinho Mar 23, 2026
37cfd04
Create CODEOWNERS file for pull request assignments (#318)
jonathanpeppers Mar 23, 2026
fd46aa0
[Xamarin.Android.Tools.AndroidSdk] fall back to `android-{major}.0` (…
jonathanpeppers Apr 2, 2026
bd24e4d
[Build.Tasks] Validate extracted zip entry paths in `Files.ExtractAll…
jonathanpeppers Apr 14, 2026
d42b00c
[Build.Tasks] Use `LogDebugMessage` instead of `LogWarning` in `Extra…
jonathanpeppers Apr 14, 2026
b644610
[test] Rename test cases to `relative.txt` in test files (#333)
Copilot Apr 22, 2026
b8e8058
[tests] Add BenchmarkDotNet project for `Files` hash APIs (#334)
jonathanpeppers Apr 23, 2026
837cd58
[BaseTasks] Replace `Crc64` with `XxHash64` in `Files` class (#335)
jonathanpeppers Apr 23, 2026
ffdd293
[BaseTasks] Replace `XxHash64` with `System.IO.Hashing.Crc64` in `Fil…
jonathanpeppers Apr 27, 2026
0b948c6
[JdkInfo] Remove dead code: `GetLibJvmJdks` and `GetLibJvmJdkPaths` (…
jonathanpeppers Apr 27, 2026
8cfdef2
[JdkInfo] Fix `StringBuilder` concurrency crash in `JdkInfo.GetJavaPr…
Copilot Apr 27, 2026
6511fdd
[BaseTasks] Fix NRE in `DeleteFile` catch block (#342)
jonathanpeppers Apr 27, 2026
2d7955f
[copilot] Add `/review` GitHub agentic workflow (#346)
jonathanpeppers Apr 28, 2026
ad509c7
[Tools.AndroidSdk] Remove unused `key_name` variables (#345)
jonathanpeppers Apr 28, 2026
bbc1c52
[BaseTasks] Enable nullable reference types (#344)
Copilot Apr 28, 2026
c7f73b0
[copilot] Fix reviewer not posting body-only reviews (#352)
jonathanpeppers Apr 30, 2026
c878f5f
[copilot] Split reviewer skill rules into conditional files (#355)
jonathanpeppers May 4, 2026
ceee44c
[copilot] Add performance and allocation review learnings (#354)
rmarinho May 4, 2026
ee711e0
Add `AvdManagerRunner.ListDeviceProfilesAsync()` for device enumerati…
rmarinho May 4, 2026
be07642
Add API 37 (CinnamonBun) to KnownVersions (#357)
jonathanpeppers May 6, 2026
2ab36f1
[copilot] Restore workflow_dispatch trigger for Copilot coding agent …
jonathanpeppers May 6, 2026
db8cf78
Handle InvalidOperationException when emulator process has no associa…
jonathanpeppers May 7, 2026
031b4ad
Merge pull request #359 from dotnet/copilot/fix-emulator-boot-error
simonrozsival May 8, 2026
9f0b33e
Remove dead ThrowIfCancellationRequested() in WaitForFullBootAsync
jonathanpeppers May 8, 2026
bdb9561
Fix formatting of bootCompleted variable assignment
jonathanpeppers May 8, 2026
c7c4df2
Merge pull request #363 from dotnet/op-remove-dead-throwifcancelled-boot
simonrozsival May 12, 2026
9d556b5
Merge pull request #362 from dotnet/op-fix-runner-throwiffailed-stdout
jonathanpeppers May 12, 2026
0bfba29
Launch emulator in signal-isolated process on Unix to survive Ctrl+C …
Copilot May 15, 2026
8f25d9a
Update Microsoft.Build package references (#369)
Redth May 27, 2026
39dadaf
Add Dependabot config for weekly NuGet updates (#370)
jonathanpeppers May 27, 2026
cac71d8
[BaseTasks] Remove unused System.Reflection.Metadata reference (#377)
jonathanpeppers May 28, 2026
e1215d4
Bump Microsoft.DotNet.Arcade.Sdk from 6.0.0-beta.20615.1 to 6.0.0-bet…
dependabot[bot] May 28, 2026
02bfe35
Bump BenchmarkDotNet from 0.14.0 to 0.15.8 (#371)
dependabot[bot] May 28, 2026
4877167
Bump GitInfo from 2.1.2 to 3.6.0 (#372)
dependabot[bot] May 28, 2026
3212ac0
Bump Microsoft.NET.Test.Sdk from 17.5.0-preview-20221003-04 to 18.6.0…
dependabot[bot] May 28, 2026
3c0342e
Bump Microsoft.CodeAnalysis.PublicApiAnalyzers from 3.3.4 to 4.14.0 (…
dependabot[bot] May 28, 2026
6e3dd43
Bump System.IO.Hashing from 10.0.7 to 10.0.8 (#381)
dependabot[bot] Jun 2, 2026
4f4f549
Bump Microsoft.SourceLink.GitHub from 1.1.1 to 10.0.300 (#378)
dependabot[bot] Jun 2, 2026
60bc2da
Bump NUnit3TestAdapter from 4.0.0 to 6.2.0 (#380)
dependabot[bot] Jun 2, 2026
61deb75
[AdbRunner] Add ADB forward port management (#351)
rmarinho Jun 2, 2026
5d7e654
[msbuild] add System.Security.Cryptography.Xml transitive dependency …
Redth Jun 11, 2026
0e6d13b
Bump System.IO.Hashing from 10.0.8 to 10.0.9 (#387)
dependabot[bot] Jun 11, 2026
b8f324c
Upgrade gh-aw to v0.79.6 and recompile workflows (#388)
jonathanpeppers Jun 12, 2026
f0033c4
[ci] Update agentic workflows to claude-opus-4.8 (#389)
jonathanpeppers Jun 15, 2026
860cc6a
Bump gh-aw to v0.79.8 and disable AIC guardrails on reviewer workflow…
jonathanpeppers Jun 17, 2026
b24be28
Scope gh-aw GitHub tokens to suppress magic fallback secret names (#391)
jonathanpeppers Jun 17, 2026
24e94f0
Bump GitInfo from 3.6.0 to 3.6.1 (#392)
dependabot[bot] Jun 25, 2026
2cd6531
Bump Microsoft.NET.Test.Sdk from 18.6.0 to 18.7.0 (#393)
dependabot[bot] Jun 25, 2026
39cd53e
[gh-aw] move AI reviewer to PAT pool (#394)
vitek-karas Jun 29, 2026
7041003
[gh-aw] Address PR 394 review: drop gh-aw step, recompile, remove sta…
jonathanpeppers Jun 30, 2026
7429f01
Bump Microsoft.CodeAnalysis.PublicApiAnalyzers from 4.14.0 to 5.6.0 (…
dependabot[bot] Jul 10, 2026
205e047
Add ADB device tracking (host:track-devices) for real-time device mon…
rmarinho Jul 13, 2026
77a681e
Remove external/xamarin-android-tools submodule in preparation for in…
jonathanpeppers Jul 13, 2026
7177b0f
Merge dotnet/android-tools history under external/xamarin-android-tools
jonathanpeppers Jul 13, 2026
42b2ea4
Add Android Tools CI stage and merge follow-ups
jonathanpeppers Jul 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@
- **Run tests:** `dotnet-local.cmd test bin/TestDebug/net9.0/Xamarin.Android.Build.Tests.dll --filter Name~TestName`
- **Device tests:** `dotnet-local.cmd test bin/TestDebug/MSBuildDeviceIntegration/net9.0/MSBuildDeviceIntegration.dll`

### external/xamarin-android-tools/

The in-tree Android tools libraries include SDK/JDK discovery (`AndroidSdkInfo`, `JdkInfo`, SDK manifest parsing, `AdbRunner`, `EmulatorRunner`) and MSBuild task infrastructure (`AndroidTask`, `AndroidToolTask`, `AsyncTask`, `Files`, `ProcessUtils`, `FileUtil`, `MemoryStreamPool`). They target `netstandard2.0` and/or modern .NET, so verify API availability across all target frameworks before using newer BCL APIs. Prefer `ANDROID_HOME` for new Android SDK environment handling; `ANDROID_SDK_ROOT` is deprecated and should only remain for compatibility.

Useful focused checks:
```sh
dotnet build external/xamarin-android-tools/Xamarin.Android.Tools.sln
dotnet test external/xamarin-android-tools/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Xamarin.Android.Tools.AndroidSdk-Tests.csproj
dotnet test external/xamarin-android-tools/tests/Microsoft.Android.Build.BaseTasks-Tests/Microsoft.Android.Build.BaseTasks-Tests.csproj
```

## Critical Rules

**Never use `git commit --amend`:** Always create new commits. The user will squash or fixup as needed.
Expand Down
4 changes: 2 additions & 2 deletions .github/skills/android-reviewer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ description: >-

# Android PR Reviewer

Review PRs against guidelines distilled from past reviews by senior maintainers of dotnet/android.
Review PRs against guidelines distilled from past reviews by senior maintainers of dotnet/android, including the in-tree shared tooling under `external/xamarin-android-tools/`.

## Review Mindset

Expand Down Expand Up @@ -70,7 +70,7 @@ Based on the file types identified in step 2, read the appropriate rule files fr

**Conditionally load based on changed file types:**
- `references/csharp-rules.md` — When any `.cs` files changed. Covers nullable, async, error handling, performance, and code organization.
- `references/msbuild-rules.md` — When `.targets`, `.props`, `.projitems`, or `.csproj` files changed, or when MSBuild task C# files changed (e.g., files under `src/Xamarin.Android.Build.Tasks/`).
- `references/msbuild-rules.md` — When `.targets`, `.props`, `.projitems`, or `.csproj` files changed, or when MSBuild task C# files changed (e.g., files under `src/Xamarin.Android.Build.Tasks/` or `external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/`).
- `references/native-rules.md` — When `.c`, `.cpp`, `.h`, or `.hpp` files changed. Covers memory management, C++ best practices, symbol visibility, and platform-specific code.
- `references/interop-rules.md` — When both C# and native files changed, when the diff contains P/Invoke or JNI interop code (e.g., `DllImport`, `[Register]` attribute changes, `JNIEnv` calls, `[MarshalAs]`, `[StructLayout]`, `JniObjectReference`, `JniPeerMembers`, `JniTransition`), or when files under `external/Java.Interop/`, `src/Mono.Android/`, or `src/native/` changed.
- `references/testing-rules.md` — When test files changed (e.g., files under `tests/`, `**/Tests/`, or test project directories).
Expand Down
11 changes: 11 additions & 0 deletions .github/skills/android-reviewer/references/csharp-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ General C# guidance applicable to any .NET repository.

---

## Target Framework Compatibility

| Check | What to look for |
|-------|-----------------|
| **Oldest TFM must compile** | Code under `external/xamarin-android-tools/` may target `netstandard2.0` and modern .NET. Verify every API and overload against the oldest target framework; common traps include cancellation-token overloads such as `HttpContent.ReadAsStringAsync(CancellationToken)`, modern `ProcessStartInfo.ArgumentList` usage without the existing fallback helpers, and newer language/BCL features that need `#if` guards or polyfills. |
| **Prefer existing compatibility helpers** | Use repository helpers such as `ProcessUtils`, `FileUtil`, and nullable extension methods instead of direct modern-BCL calls when they provide `netstandard2.0` fallbacks or better annotations. |

---

## Nullable Reference Types

| Check | What to look for |
Expand Down Expand Up @@ -53,6 +62,8 @@ General C# guidance applicable to any .NET repository.
|-------|-----------------|
| **Avoid unnecessary allocations** | Don't create intermediate collections when LINQ chaining or a single list would do. Char arrays for `string.Split()` should be `static readonly` fields. |
| **ArrayPool for large buffers** | Buffers ≥ 1 KB should use `ArrayPool<byte>.Shared.Rent()` with `try`/`finally` return. Large allocations go to the LOH and are expensive to GC. |
| **Use existing pools for repeated streams/buffers** | In Android tools code, prefer existing pooling helpers such as `MemoryStreamPool`/`ObjectPool<T>` for repeated temporary streams or buffers instead of allocating new instances in hot paths. If mutable buffers are reused with single-caller assumptions, document the thread-safety invariant. |
| **Static `HttpClient`** | `HttpClient` instances should be `static readonly` fields, not per-instance objects that are repeatedly constructed or disposed. Per-instance clients can exhaust sockets; inject clients only when there is a real caller requirement. |
| **`HashSet.Add()` already handles duplicates** | Calling `.Contains()` before `.Add()` does the hash lookup twice. Just call `.Add()`. (Postmortem `#41`) |
| **Don't wrap a value in an interpolated string** | `$"{someString}"` creates an unnecessary `string.Format` call when `someString` is already a string. (Postmortem `#42`) |
| **Consider allocations when choosing types** | `Stopwatch` is heap-allocated; `DateTime`/`ValueStopwatch` is a struct. On hot paths or startup, prefer value types. (Postmortem `#39`) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,13 @@ and merge conflicts.
| Check | What to look for |
|-------|-----------------|
| **Use existing utilities** | Check `MonoAndroidHelper`, `FileUtil`, `PathUtil`, `ITaskItemExtensions`, and other utilities before writing new helpers. Duplicating existing logic is the most expensive AI pattern. |
| **Use Android tools utilities** | In `external/xamarin-android-tools/`, process execution should go through `ProcessUtils`, file extraction/download/checksum/path helpers through `FileUtil`, and repeated buffers/streams through `ObjectPool<T>` or `MemoryStreamPool` where applicable. |
| **`Log.LogDebugMessage` for diagnostics** | Use `Log.LogDebugMessage(…)` for verbose/debug output, not `Console.WriteLine` or `Debug.WriteLine`. Don't spam logcat with messages that fire on every type lookup miss. (Postmortem `#9`) |
| **Android tools logger delegate** | SDK/JDK discovery helpers in `external/xamarin-android-tools/` commonly use `Action<TraceLevel, string>? logger` (see `AndroidSdkInfo.DefaultConsoleLogger`) so callers can route diagnostics into MSBuild or IDE logs. Don't replace this with `Console.WriteLine` or `Debug.WriteLine`. |
| **Return `IReadOnlyList<T>`** | Public methods should return `IReadOnlyList<T>` or `IReadOnlyCollection<T>` instead of mutable `List<T>`. |
| **Prefer C# pattern matching** | Use `is`, `switch` expressions, and property patterns instead of `if`/`else` type-check chains. |
| **Structured args, not string interpolation** | Process arguments should be `IEnumerable<string>` or use `ArgumentList`, not a single interpolated string. |
| **Android SDK environment variables** | In `external/xamarin-android-tools/`, use `EnvironmentVariableNames.AndroidHome`/`ANDROID_HOME` for new SDK-root behavior. `ANDROID_SDK_ROOT` is deprecated by Android and should only be read for backward compatibility. |
| **Method names must reflect behavior** | If `CreateFoo()` sometimes returns an existing instance, rename it `GetOrCreateFoo()` or `GetFoo()`. (Postmortem `#4`) |
| **Choose collision-proof names** | Types and constants that could collide with user code or Android concepts need disambiguating prefixes (e.g., `__Xamarin.Android.Resource.Designer` with a `__` prefix). (Postmortem `#2`) |
| **Don't assume transitive assembly references** | An assembly containing an `Activity` subclass does not necessarily reference `Mono.Android.dll` directly — the reference may be transitive. Skipping assemblies based on direct reference checks can break user code. (Postmortem `#64`) |
Expand Down Expand Up @@ -93,6 +96,7 @@ and merge conflicts.
| Check | What to look for |
|-------|-----------------|
| **XmlReader over LINQ XML** | For forward-only XML parsing (manifests, config files), prefer `XmlReader` — it's streaming and allocation-free. `XElement`/`XDocument` builds a full DOM tree. |
| **SDK manifest parsing stays streaming** | Android SDK repository manifests can be large; keep `external/xamarin-android-tools/` manifest parsing on streaming `XmlReader`-style paths unless there is measured evidence a DOM is acceptable. |
| **p/invoke over process spawn** | For single syscalls like `chmod`, use `[DllImport("libc")]` instead of spawning a child process. Process creation is orders of magnitude more expensive. |
| **Use `Files.CopyIfStringChanged()`** | Don't write to a file if the content hasn't changed — it breaks incremental builds by updating timestamps. (Postmortem `#53`) |
| **Don't remove caches without measurement** | If a cache (like `TypeDefinitionCache`) had a measured perf win, removing it requires proving the replacement provides equivalent caching. (Postmortem `#57`) |
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ I/O, archives, or process execution.
|-------|-----------------|
| **Zip Slip protection** | Archive extraction must validate that every entry path, after `Path.GetFullPath()`, resolves under the destination directory. Never use `ZipFile.ExtractToDirectory()` for untrusted archives without entry-by-entry validation. |
| **Path traversal** | `StartsWith()` checks on paths must normalize with `Path.GetFullPath()` first. A path like `C:\Program Files\..\Users\evil` bypasses naive prefix checks. Also check for directory boundary issues (`C:\Program FilesX` matching `C:\Program Files`). |
| **Mandatory checksum verification** | Downloads or archive installs in Android tools code must not proceed unverified when checksum/hash data is expected but missing or mismatched. Fail closed with an actionable error. |

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Guidance for test code. The repo-specific conventions (e.g., `BaseTest`,
| **Test assertions must be specific** | `Assert.IsNotNull(result)` or `Assert.IsTrue(success)` don't tell you what went wrong. Prefer `Assert.AreEqual(expected, actual)` or NUnit constraints (`Assert.That` with `Does.Contain`, `Is.EqualTo`, etc.) for richer failure messages. |
| **Deterministic test data** | Tests should not depend on system locale, timezone, or current date. Use explicit `CultureInfo.InvariantCulture` and hardcoded dates when testing formatting. |
| **Test edge cases** | Empty collections, null inputs, boundary values, concurrent calls, and very large inputs should all be considered. If the PR only tests the happy path, suggest edge cases. |
| **Android tools SDK/JDK fixtures** | Tests under `external/xamarin-android-tools/tests/` commonly build isolated fake SDK/JDK layouts and platform-specific tool scripts (`.bat` on Windows, shell scripts on Unix). Keep these fixtures self-contained and cleaned up in setup/teardown rather than depending on the developer machine's installed SDK/JDK. |
| **Generator tests must include Invoker types** | Tests for generated binding code (under `external/Java.Interop/tools/generator/` and related test projects) should verify both the interface/class output and the `*Invoker` type behavior. Invoker codegen has historically had subtle bugs with default interface methods and virtual dispatch. |
| **JVM-dependent tests** | Tests that require a running JVM must be in projects that configure the JVM environment (e.g., `Java.Interop-Tests`). Verify that test classes requiring a JVM are not placed in unit-test-only projects, where they will silently skip or fail with obscure errors. |
| **Expected codegen output tests** | Generator tests that compare against expected output files should be updated when the expected format changes. Stale expected-output files cause spurious test failures that mask real regressions. |
4 changes: 0 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@
path = external/robin-map
url = https://github.com/xamarin/robin-map
branch = master
[submodule "external/xamarin-android-tools"]
path = external/xamarin-android-tools
url = https://github.com/dotnet/android-tools
branch = main
[submodule "external/xxHash"]
path = external/xxHash
url = https://github.com/Cyan4973/xxHash.git
Expand Down
14 changes: 14 additions & 0 deletions build-tools/automation/azure-pipelines-public.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,20 @@ stages:
- ImageOverride -equals ACES_VM_SharedPool_Tahoe
os: macOS

# Android Tools Tests Stage
- template: /build-tools/automation/yaml-templates/stage-xamarin-android-tools-tests.yaml@self
parameters:
windowsPool:
name: $(NetCorePublicPoolName)
demands:
- ImageOverride -equals $(WindowsPoolImageNetCorePublic)
os: windows
macPool:
name: AcesShared
demands:
- ImageOverride -equals ACES_VM_SharedPool_Tahoe
os: macOS

# MAUI Tests Stage
- stage: maui_tests
displayName: MAUI Tests
Expand Down
11 changes: 11 additions & 0 deletions build-tools/automation/azure-pipelines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,17 @@ extends:
image: $(WindowsPoolImage1ESPT)
os: windows

- template: /build-tools/automation/yaml-templates/stage-xamarin-android-tools-tests.yaml@self
parameters:
# The internal Xamarin.Android pipeline uses 1ES Pipeline Templates, which
# require Windows jobs to run on a 1ES-hosted pool. macOS is fine on the
# hosted Azure Pipelines pool as long as `os: macOS` is set (which is now
# the template default).
windowsPool:
name: MAUI-1ESPT
image: $(WindowsPoolImage1ESPT)
os: windows

- stage: maui_tests
displayName: MAUI Tests
dependsOn: mac_build
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# xamarin-android-tools tests stage
#
# Mirrors the build + test jobs from the upstream dotnet/android-tools
# azure-pipelines.yaml so that the Xamarin.Android.Tools build + unit tests
# continue to run as part of dotnet/android CI now that android-tools has been
# merged in-tree under external/xamarin-android-tools/.
#
# The upstream pipeline also packed a NuGet and published build artifacts;
# those are intentionally dropped here (the binaries aren't consumed from this
# stage -- dotnet/android's own build produces the shipping assemblies). Only
# logs + test results are surfaced.
#
# Referenced from both:
# - build-tools/automation/azure-pipelines.yaml (official / 1ES)
# - build-tools/automation/azure-pipelines-public.yaml (public PR validation)

parameters:
- name: stageName
type: string
default: xamarin_android_tools_tests
- name: dependsOn
type: object
default: []
- name: condition
type: string
default: succeeded()
- name: windowsPool
type: object
# NOTE: This default is a Microsoft-hosted Azure Pipelines pool, which is NOT
# allowed by 1ES Pipeline Templates in Official mode. Callers that extend the
# 1ES Official template (e.g. build-tools/automation/azure-pipelines.yaml) must
# override this with a 1ES-hosted pool like `MAUI-1ESPT`.
default:
name: Azure Pipelines
vmImage: $(HostedWinImage)
os: windows
- name: macPool
type: object
default:
name: Azure Pipelines
vmImage: $(HostedMacImage)
os: macOS

stages:
- stage: ${{ parameters.stageName }}
displayName: Android Tools Tests
dependsOn: ${{ parameters.dependsOn }}
condition: ${{ parameters.condition }}
variables:
DotNetCoreVersion: 10.0.x
XatSourceDirectory: $(System.DefaultWorkingDirectory)/external/xamarin-android-tools
# When built in-tree, external/xamarin-android-tools.override.props imports
# dotnet/android's root Directory.Build.props, which pins
# DotNetTargetFrameworkVersion=11.0 and sets AndroidToolsDisableMultiTargeting=true
# (so the product build gets a single netstandard2.0 assembly). Upstream
# dotnet/android-tools CI instead builds standalone: multi-targeting
# netstandard2.0 + net10.0, with the test projects running on net10.0. Its
# ProcessUtils tests assert ProcessStartInfo.ArgumentList, which only exists on
# the net10.0 (NET5_0_OR_GREATER) build -- the netstandard2.0 build takes the
# string-Arguments path. To reproduce upstream's green test configuration we
# re-enable multi-targeting and force net10.0 via these global properties.
XatBuildProperties: -p:AndroidToolsDisableMultiTargeting=false -p:DotNetTargetFrameworkVersion=10.0
jobs:

# Check - "Xamarin.Android (Android Tools Tests Windows - .NET)"
- job: xamarin_android_tools_windows
displayName: Windows - .NET
pool: ${{ parameters.windowsPool }}
timeoutInMinutes: 30
workspace:
clean: all
steps:
- checkout: self
clean: true

- task: UseDotNet@2
displayName: Use .NET Core $(DotNetCoreVersion)
inputs:
version: $(DotNetCoreVersion)

- task: DotNetCoreCLI@2
displayName: Build Xamarin.Android.Tools.sln
inputs:
command: build
projects: $(XatSourceDirectory)/Xamarin.Android.Tools.sln
arguments: -c Debug $(XatBuildProperties) -bl:$(Build.ArtifactStagingDirectory)/build-windows.binlog

- task: DotNetCoreCLI@2
displayName: Run Tests
inputs:
command: test
projects: $(XatSourceDirectory)/bin/TestDebug/**/*-Tests.dll

- task: PublishBuildArtifacts@1
displayName: Upload build logs
condition: always()
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: android-tools-logs-windows

# Check - "Xamarin.Android (Android Tools Tests Mac - .NET)"
- job: xamarin_android_tools_mac
displayName: Mac - .NET
pool: ${{ parameters.macPool }}
timeoutInMinutes: 30
workspace:
clean: all
steps:
- checkout: self
clean: true

- task: UseDotNet@2
displayName: Use .NET Core $(DotNetCoreVersion)
inputs:
version: $(DotNetCoreVersion)

- task: DotNetCoreCLI@2
displayName: Build Xamarin.Android.Tools.sln
inputs:
command: build
projects: $(XatSourceDirectory)/Xamarin.Android.Tools.sln
arguments: -c Debug $(XatBuildProperties) -bl:$(Build.ArtifactStagingDirectory)/build-mac.binlog

- task: DotNetCoreCLI@2
displayName: Run Tests
inputs:
command: test
projects: $(XatSourceDirectory)/bin/TestDebug/**/*-Tests.dll

- task: PublishBuildArtifacts@1
displayName: Upload build logs
condition: always()
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: android-tools-logs-mac
Loading
Loading