Граф коммитов

168 Коммитов

Автор SHA1 Сообщение Дата
Jonathan Pobst 759fe886eb
[ci] `macos12` is no longer available, use `macos14`. (#1034)
The Mac pool we use `internal-macos12` is no longer available.  Ideally we could just use the public Azure Pipelines pool, but those machines are underpowered and doubles the (already long!) time taken to build our packages.  Switch to the internal `VSEng-VSMac-Xamarin-Shared` mac pool already in use by `dotnet/android` and MAUI.

`JavaToolInstaller@0` does not seem to work on this image, even though there are many versions of Java SDK already installed on the image.  Set `JAVA_HOME` to Java SDK 11 so we can build.

Additionally, the `tools-executive-oreder-csv-and-markdown` Cake task does not work on these images because it expects `gradle` and other tools to be available in the `$PATH` which they aren't.  As we do not consume or ship these files from the build, add a try/catch block to the task so that it does not fail the build if it fails.
2024-11-06 08:53:11 -10:00
Jonathan Pobst d044e5dea4
[ci] Create CI option to test running repository on next version of .NET. (#1013)
We waited too late to ensure that this repository builds successfully on .NET 9, causing last-minute fixes in `generator`.  This is something we need to be doing throughout the entire preview cycle, even though we do not ship packages targeting the preview framework.

This PR creates a CI option that can be requested which will run the repository on the preview version of .NET N+1.

Once this test succeeds (hopefully with .NET 9 RTM!) we can enable it as a nightly test to ensure we are continuously testing our .NET previews instead of waiting until the end of the preview cycle.
2024-10-17 08:01:05 -10:00
Jonathan Pobst 026127677e
Add support for specifying skipping extended tests in config.json. (#1002)
- Add `"skipExtendedTests"` to `config.json`.  When set to `true`, the "extended" tests are not run for this package.  This allows us to get our test job green with the packages that currently work.  This way we can go ahead and have it running for currently working packages to ensure they do not regress.
- Set up a "nightly" job that will run the "extended" test suite every night.  Note that this will only run if there have been changes to `main` since the previous run, so it generally won't actually run every night.
2024-10-09 08:02:33 -10:00
Jonathan Pobst 4dfdd51ad5
[ci] Make "Sign Archive" a separate stage. (#965)
Today, when preparing a publish release, the "Sign Archive" step always fails the first run, as it relies on the output from the "Build Windows" job, but does not specify the dependency, so it runs before the packages have been built.

Specifying the dependency is better, but it makes the "Build Windows" stage take a lot longer and the test stage(s) cannot run until it completes.

This PR moves the signing to its own stage with the proper dependency set, so it will not run until the packages are ready.  By moving it to its own stage it can also run in parallel with the test stage(s), reducing the overall CI time.
2024-09-26 07:34:19 -10:00
Jonathan Pobst 3bf2dabc91
Convert "all packages" "samples" to proper unit tests. (#925)
Convert our existing `BuildAllDotNet`/`BuildAllMauiApp` samples to NUnit based unit tests.  These tests use `dotnet new android|maui` instead of committed projects so that we always ensure we are testing against the current templates that our users will be using.

Additionally, move these tests to another stage, so they can run in parallel with other [test suite(s)](https://github.com/xamarin/AndroidX/pull/892).

This PR does not remove the existing `BuildAll*` samples, those will be removed in a future PR.
2024-08-04 17:38:52 -10:00
Jonathan Pobst 1e6a7fd51b
Add extended CI test job. (#892)
Our current `BuildAllDotNet` and `BuidAllMauiApp` tests provide a smoke test that we are able to compile an application that consumes *all* of the packages from this repository *simultaneously*.  However, this doesn't surface dependency errors that a user would see if they add *individual* packages to their application, which is the way packages are actually consumed.

This PR provides extended tests that do the following for each individual package:

- Create a new `android`/`maui` template app
- Add one package to the app
- Compile the app

Even though we parallelize the tests across many test agents, this involves compiling over 600 applications, so the tests take a long time to run and cannot be run on every commit.  For now, we will start with this being a manually run CI test that can be kicked off in the CI UI by setting the `Run Extended Tests?` parameter to `true`.

Note that there are currently packages that fail this test.  Our goal will be to fix these in future changes.
2024-06-13 16:54:25 -05:00
Jonathan Pobst 3c8325e40f
Remove Classic support. (#875)
With support for Classic Xamarin.Android [ended May 1st, 2024](https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin), we can start removing all the hacks needed to support both Classic and .NET for Android.

- No longer build EOL frameworks: `MonoAndroid12.0;net6.0-android;`
- No longer need to install classic XA
- No longer need to have classic XA or XF sample builds
- No longer need to use `Xamarin.Legacy.Sdk`

For this PR, we'll only build `net7.0-android`.  A future PR should enable `net8.0-android`.

The best news: with this our CI build time drops from ~80 minutes to ~35 minutes. 🎉
2024-05-03 07:51:29 -10:00
moljac 4bfa1cfc9b tooling version bumps 2024-04-10 17:07:42 +02:00
Jonathan Pobst c9f6fdbbe0
[ci] Switch to using the 1ES mandated pipeline template. (#844)
As part of Microsoft's continued push for supply chain security, our CI that builds shipping software must extend an "official" template that can be used to ensure various safety checks have run.

Unfortunately, this requires extensive changes to our CI to fit their model.  This PR requires both necessary changes and cleanup done to make our process mesh better with the template.

The only functional difference should be:
- Previously the outputs of both the `Windows` and `MacOS` builds were copied to the same artifact directory (`"nuget"`) which was signed and released.  This meant that the last one written "won" and that's what we shipped.  The new template didn't like multiple agents writing to the same output directory, so now we only write to `output-windows` and `output-macos`, and we always sign and ship the `output-windows` output.
2024-03-04 09:42:29 -10:00
Jonathan Pobst f90b230bcb
[ci] Move CI YAML from XC. (#658) 2022-12-05 14:27:54 -06:00
Jonathan Pobst 6157929b6a
Move Xamarin.AndroidBinderator to this repository. (#656) 2022-11-29 08:57:01 -06:00
moljac abca021208 dotnet 6.0.403 2022-11-22 18:31:56 +01:00
Jonathan Pobst 786ebcf926
Move Xamarin.Build.Download to this repository. (#652) 2022-11-09 11:31:46 -06:00
Jonathan Pobst 2f5d2321f7
Update to .NET 6.0.402. (#647) 2022-11-04 18:47:27 -05:00
Jonathan Pobst a03838f185
[global.json] Use `"rollForward": "patch"`. (#645) 2022-11-03 17:40:19 -05:00
Jonathan Pobst 2b14505f07
[ci] Fail build if .NET android/maui workloads cannot be installed. (#644) 2022-11-03 16:04:44 -05:00
Jonathan Pobst aee21bc33b
Use internal locked-down Mac VM image for building. 2022-10-25 09:31:59 -05:00
moljac 732e6ff77f CI timeouts fix - 150 minutes 2022-10-24 14:39:14 +02:00
moljac 09a306f50e Update azure-pipelines.yml 2022-09-29 23:06:30 +02:00
moljac 1b714754b8 dotnet bump 2022-09-21 17:05:31 +02:00
Jonathan Pobst b127f1b191
Update dotnet to `6.0.400` and legacy to `17.3`. (#599) 2022-08-09 16:32:51 -05:00
moljac a2a6580358 matching Xamarin.Android builds 2022-07-27 20:04:15 +02:00
moljac f1c249a91f using workloads.json 2022-07-27 15:50:49 +02:00
moljac 18b27debc0 Update azure-pipelines.yml 2022-07-22 09:27:18 +02:00
moljac 53fbcbebb8
Merge branch 'main' into create-pull-request/patch-1656309939 2022-07-22 06:46:06 +02:00
moljac 150262e0a9 Update azure-pipelines.yml 2022-07-20 09:07:24 +02:00
moljac eaee56108d Update azure-pipelines.yml 2022-07-20 08:58:27 +02:00
moljac eb24309aa5 Update azure-pipelines.yml 2022-07-20 08:56:06 +02:00
moljac 69a915aee3 typo 2022-07-20 08:54:25 +02:00
moljac 1d979c7e17 runtime parameter 2022-07-20 08:50:15 +02:00
moljac f3bc94793d output version 2022-07-20 08:37:21 +02:00
moljac 8b462ae825 parameter added 2022-07-20 08:30:08 +02:00
moljac fa8cf9b104 Update azure-pipelines.yml 2022-07-20 08:16:43 +02:00
moljac 6c92af6374 xcode version 2022-07-19 20:46:30 +02:00
moljac ab9e660917 macosImage: macOS-12 + xcode: 13.3 2022-07-19 18:22:02 +02:00
moljac 1b8568977b maui added 2022-07-19 17:08:52 +02:00
moljac 0fed8079f5 .NET SDK 6.0.300, xcode 13.2.1 et al 2022-07-13 09:25:57 +02:00
moljac 9d0c7cf2e8 xcode: 13.2.1 2022-07-12 21:55:17 +02:00
moljac a36ea5109f
Merge branch 'main' into create-pull-request/patch-1656309939 2022-07-12 09:50:03 +02:00
Jonathan Pobst f5297eb602 Re-enable Mac CI builds. 2022-07-11 17:39:23 -05:00
moljac 2ce82d4a75 .NET SDK 6.0.301 2022-07-08 14:46:12 +02:00
Jonathan Pobst 81652cb20e
[ci] Verify published namespaces after api-diff has run. (#570) 2022-06-07 11:32:36 -05:00
Jonathan Pobst 2b5560fa97
[ci] Ensure all namespaces are verified in published-namespaces.txt. (#558) 2022-05-24 10:31:44 -05:00
moljac b72937abf4
Merge pull request #544 from xamarin/tools-updates
tools updates
2022-05-16 17:22:08 +02:00
Jonathan Pobst 693bc33e5b
[ci] Update to Classic 17.2 / .NET 6 Xamarin RC3. (#543) 2022-05-16 10:21:50 -05:00
moljac fd644b7370 Xamarin.AndroidX.Migration.Tool 1.0.9 2022-05-13 09:11:05 +02:00
Jonathan Pobst 3b1f46c199
Use parent POM to support Guava dependencies. (#541) 2022-05-12 13:01:42 -05:00
moljac 16d7c37f50 initial commit 2022-05-12 11:14:18 +02:00
Jonathan Pobst 40754953d7
Bump from .NET 6 Android Preview 9 to 13. (#514)
Co-authored-by: moljac <mcvjetko@holisticware.net>
2022-04-04 08:58:52 -05:00
Jonathan Pobst c05e6971a6
[ci] Update boots to fix vsix downgrade issue (#513) 2022-03-24 10:54:04 -05:00