|
| 1 | +using System.Reflection; |
| 2 | + |
| 3 | +// Static class holding information about known extensions. |
| 4 | +public static class KnownExtensions |
| 5 | +{ |
| 6 | + // Static Variables representing well-known Extensions with the latest tested version |
| 7 | + public static ExtensionSpecifier NUnitV2Driver = new ExtensionSpecifier( |
| 8 | + "NUnit.Extension.NUnitV2Driver", "nunit-extension-nunit-v2-driver", "3.9.0"); |
| 9 | + public static ExtensionSpecifier NUnitProjectLoader = new ExtensionSpecifier( |
| 10 | + "NUnit.Extension.NUnitProjectLoader", "nunit-extension-nunit-project-loader", "3.8.0"); |
| 11 | + public static ExtensionSpecifier VSProjectLoader = new ExtensionSpecifier( |
| 12 | + "NUnit.Extension.VSProjectLoader", "nunit-extension-vs-project-loader", "3.9.0"); |
| 13 | + public static ExtensionSpecifier NUnitV2ResultWriter = new ExtensionSpecifier( |
| 14 | + "NUnit.Extension.NUnitV2ResultWriter", "nunit-extension-nunit-v2-result-writer", "3.8.0"); |
| 15 | + public static ExtensionSpecifier TeamCityEventListener = new ExtensionSpecifier( |
| 16 | + "NUnit.Extension.TeamCityEventListener", "nunit-extension-teamcity-event-listener", "1.0.9"); |
| 17 | + public static ExtensionSpecifier Net462PluggableAgent = new ExtensionSpecifier( |
| 18 | + "NUnit.Extension.Net462PluggableAgent", "nunit-extension-net462-pluggable-agent", "4.1.0-alpha.3"); |
| 19 | + public static ExtensionSpecifier Net80PluggableAgent = new ExtensionSpecifier( |
| 20 | + "NUnit.Extension.Net80PluggableAgent", "nunit-extension-net80-pluggable-agent", "4.1.0-alpha.4"); |
| 21 | + public static ExtensionSpecifier Net90PluggableAgent = new ExtensionSpecifier( |
| 22 | + "NUnit.Extension.Net90PluggableAgent", "nunit-extension-net90-pluggable-agent", "4.1.0-alpha.3"); |
| 23 | + |
| 24 | + private static FieldInfo[] ExtensionFields => |
| 25 | + typeof(KnownExtensions).GetFields(BindingFlags.Static | BindingFlags.Public).ToArray(); |
| 26 | + |
| 27 | + private static ExtensionSpecifier[] BundledAgents => |
| 28 | + [ |
| 29 | + Net462PluggableAgent, |
| 30 | + Net80PluggableAgent, |
| 31 | + Net90PluggableAgent |
| 32 | + ]; |
| 33 | + |
| 34 | + public static IEnumerable<PackageReference> BundledNuGetAgents => |
| 35 | + BundledAgents.Select(a => a.NuGetPackage); |
| 36 | + |
| 37 | + public static IEnumerable<PackageReference> BundledChocolateyAgents => |
| 38 | + BundledAgents.Select(a => a.ChocoPackage); |
| 39 | + |
| 40 | + public static IEnumerable<ExtensionSpecifier> AllExtensions => |
| 41 | + ExtensionFields.Select(f => (ExtensionSpecifier)f.GetValue("Value")).ToArray(); |
| 42 | + |
| 43 | + public static IEnumerable<ExtensionSpecifier> AllAgents => |
| 44 | + AllExtensions.Where(ex => ex.NuGetId.EndsWith("PluggableAgent")); |
| 45 | +} |
| 46 | + |
| 47 | +Task("InstallBundledAgents") |
| 48 | + .Description("Installs just the agents we bundle with the GUI runner.") |
| 49 | + .Does(() => |
| 50 | + { |
| 51 | + foreach (var agent in KnownExtensions.BundledNuGetAgents) |
| 52 | + agent.Install(BuildSettings.ProjectDirectory + BIN_DIR); |
| 53 | + }); |
| 54 | + |
| 55 | +Task("InstallAllAgents") |
| 56 | + .Description("Installs all known agents.") |
| 57 | + .Does(() => |
| 58 | + { |
| 59 | + foreach (var agent in KnownExtensions.AllAgents) |
| 60 | + agent.NuGetPackage.Install(BuildSettings.ProjectDirectory + BIN_DIR); |
| 61 | + }); |
| 62 | + |
| 63 | +Task("InstallAllExtensions") |
| 64 | + .Description("Installs all known extensions, both agents and others.") |
| 65 | + .Does(() => |
| 66 | + { |
| 67 | + foreach (var extension in KnownExtensions.AllExtensions) |
| 68 | + extension.NuGetPackage.Install(BuildSettings.ProjectDirectory + BIN_DIR); |
| 69 | + }); |
| 70 | + |
0 commit comments