Skip to content

Commit 1184c08

Browse files
authored
Simplify build matrix (#1579)
1 parent f121584 commit 1184c08

File tree

5 files changed

+9
-79
lines changed

5 files changed

+9
-79
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,21 +59,17 @@ jobs:
5959
fail-fast: false
6060
matrix:
6161
configuration: [ debug, release ]
62-
projectloadstyle: [ net35, net40, net46, net6_0, net7_0, net8_0 ]
62+
projectloadstyle: [ net35, net40, All ]
6363
os: [ windows-latest, ubuntu-latest, macos-latest ]
6464
exclude:
6565
- projectloadstyle: net35
6666
os: ubuntu-latest
6767
- projectloadstyle: net40
6868
os: ubuntu-latest
69-
- projectloadstyle: net46
70-
os: ubuntu-latest
7169
- projectloadstyle: net35
7270
os: macos-latest
7371
- projectloadstyle: net40
7472
os: macos-latest
75-
- projectloadstyle: net46
76-
os: macos-latest
7773

7874
env:
7975
RunPeVerify: true

.github/workflows/package.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ jobs:
1818
runs-on: windows-latest
1919
env:
2020
Configuration: Release
21-
ProjectLoadStyle: All
2221
steps:
2322
- name: Checkout
2423
uses: actions/checkout@v4

CONTRIBUTING.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,4 @@ This repository can be built on Windows, Linux, and OSX.
2525

2626
Building, testing, and packing this repository can be done by using the standard dotnet CLI commands (e.g. `dotnet build`, `dotnet test`, `dotnet pack`, etc.).
2727

28-
Since there are a number of targets for the project, and loading all at once may cause slow performance in Visual Studio, the target framework can be controlled by an environment variable. This is controlled in [Directory.Build.props](./Directory.Build.props) via the environment variable `ProjectLoadStyle`. This changes over time, but that file will contain what the available load configurations are. By default, this will try to default to the current LTS version of .NET Core, but allows development against previous targets if needed. This is helpful, for instance, if you don't have the latest .NET installed. The continuous integration system sets `ProjectLoadStyle=All` to build for all targets.
29-
3028
[VisualStudio]: https://docs.microsoft.com/dotnet/core/install/sdk?pivots=os-windows#install-with-visual-studio

Directory.Build.props

Lines changed: 7 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,6 @@
55
<IsShipped>false</IsShipped>
66
<NoWarn>$(NoWarn);SA0001</NoWarn>
77
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8-
9-
<!-- Because of the size of the project, to facilitate quick development, by default only single
10-
frameworks will be built. This is customizable with the following possible values:
11-
- net35: .NET Framework 3.5
12-
- net40: .NET Framework 4.0
13-
- net46: .NET Framework 4.6
14-
- net6_0: .NET 6.0
15-
- net7_0: .NET 7.0
16-
- net8_0: .NET 8.0
17-
- All: Will build for all platforms
18-
-->
19-
<ProjectLoadStyle Condition=" '$(ProjectLoadStyle)' == '' ">net8_0</ProjectLoadStyle>
20-
<__InvalidProjectLoadStyle>false</__InvalidProjectLoadStyle>
218
</PropertyGroup>
229

2310
<PropertyGroup>
@@ -36,6 +23,8 @@
3623
<Version>$(GitVersion_NuGetVersionV2)</Version>
3724
</PropertyGroup>
3825

26+
<!-- Due to the need to test .NET 3.5 and .NET 4.0 builds, we have separate configurations that
27+
allow us to build and test them. These are mostly done in CI, but may be useful at dev time. -->
3928
<Choose>
4029
<When Condition=" '$(ProjectLoadStyle)' == 'net35' ">
4130
<PropertyGroup>
@@ -61,64 +50,16 @@
6150
<SamplesFrameworks>net472</SamplesFrameworks>
6251
</PropertyGroup>
6352
</When>
64-
<When Condition=" '$(ProjectLoadStyle)' == 'net46' ">
65-
<PropertyGroup>
66-
<ProductTargetFrameworks>net46</ProductTargetFrameworks>
67-
<FrameworkTargetFrameworks>net46</FrameworkTargetFrameworks>
68-
<TestTargetFrameworks>net462</TestTargetFrameworks>
69-
<AssetsTargetFrameworks>net462</AssetsTargetFrameworks>
70-
<LatestTargetFramework>net462</LatestTargetFramework>
71-
<SamplesFrameworks>net472</SamplesFrameworks>
72-
</PropertyGroup>
73-
</When>
74-
<When Condition=" '$(ProjectLoadStyle)' == 'net6_0' ">
75-
<PropertyGroup>
76-
<ProductTargetFrameworks>net6.0</ProductTargetFrameworks>
77-
<FrameworkTargetFrameworks>net6.0</FrameworkTargetFrameworks>
78-
<TestTargetFrameworks>net6.0</TestTargetFrameworks>
79-
<AssetsTargetFrameworks>netstandard2.0</AssetsTargetFrameworks>
80-
<LatestTargetFramework>net6.0</LatestTargetFramework>
81-
<SamplesFrameworks>net6.0</SamplesFrameworks>
82-
</PropertyGroup>
83-
</When>
84-
<When Condition=" '$(ProjectLoadStyle)' == 'net7_0' ">
85-
<PropertyGroup>
86-
<ProductTargetFrameworks>net7.0</ProductTargetFrameworks>
87-
<FrameworkTargetFrameworks>net7.0</FrameworkTargetFrameworks>
88-
<TestTargetFrameworks>net7.0</TestTargetFrameworks>
89-
<AssetsTargetFrameworks>netstandard2.0</AssetsTargetFrameworks>
90-
<LatestTargetFramework>net7.0</LatestTargetFramework>
91-
<SamplesFrameworks>net7.0</SamplesFrameworks>
92-
</PropertyGroup>
93-
</When>
94-
<When Condition=" '$(ProjectLoadStyle)' == 'net8_0' ">
95-
<PropertyGroup>
96-
<ProductTargetFrameworks>net8.0</ProductTargetFrameworks>
97-
<FrameworkTargetFrameworks>net8.0</FrameworkTargetFrameworks>
98-
<TestTargetFrameworks>net8.0</TestTargetFrameworks>
99-
<AssetsTargetFrameworks>netstandard2.0</AssetsTargetFrameworks>
100-
<LatestTargetFramework>net8.0</LatestTargetFramework>
101-
<SamplesFrameworks>net8.0</SamplesFrameworks>
102-
</PropertyGroup>
103-
</When>
104-
<When Condition=" '$(ProjectLoadStyle)' == 'All' ">
105-
<PropertyGroup>
106-
<ProductTargetFrameworks>netstandard2.0;net35;net40;net8.0</ProductTargetFrameworks>
107-
<FrameworkTargetFrameworks>netstandard2.0;net6.0;net8.0;net35;net40;net46</FrameworkTargetFrameworks>
108-
<AssetsTargetFrameworks>net462;netstandard2.0</AssetsTargetFrameworks>
109-
<TestTargetFrameworks>net462;net6.0;net7.0;net8.0</TestTargetFrameworks>
110-
<LatestTargetFramework>net8.0</LatestTargetFramework>
111-
<SamplesFrameworks>net472;net8.0</SamplesFrameworks>
112-
</PropertyGroup>
113-
</When>
11453
<Otherwise>
11554
<PropertyGroup>
116-
<ProductTargetFrameworks>netstandard2.0</ProductTargetFrameworks>
55+
<ProductTargetFrameworks>netstandard2.0;net8.0;net35;net40;net46</ProductTargetFrameworks>
56+
<FrameworkTargetFrameworks>netstandard2.0;net6.0;net8.0;net35;net40;net46</FrameworkTargetFrameworks>
57+
<AssetsTargetFrameworks>netstandard2.0;net462</AssetsTargetFrameworks>
11758
<TestTargetFrameworks>net8.0</TestTargetFrameworks>
118-
<AssetsTargetFrameworks>netstandard2.0</AssetsTargetFrameworks>
59+
<TestTargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">$(TestTargetFrameworks);net462</TestTargetFrameworks>
11960
<LatestTargetFramework>net8.0</LatestTargetFramework>
12061
<SamplesFrameworks>net8.0</SamplesFrameworks>
121-
<__InvalidProjectLoadStyle>true</__InvalidProjectLoadStyle>
62+
<SamplesFrameworks Condition=" '$(OS)' == 'Windows_NT' ">$(TestTargetFrameworks);net472</SamplesFrameworks>
12263
</PropertyGroup>
12364
</Otherwise>
12465
</Choose>
@@ -130,10 +71,6 @@
13071
<IsFramework Condition=" '$(TargetFramework)' == 'net35' OR $(TargetFramework.StartsWith('net4')) ">true</IsFramework>
13172
</PropertyGroup>
13273

133-
<Target Name="UnknownProjectLoadStyle" BeforeTargets="Build" Condition="$(__InvalidProjectLoadStyle)">
134-
<Warning Text="Unknown ProjectLoadStyle '$(ProjectLoadStyle)' set. Please verify settings in Directory.Build.props and environment variables to a known value. For now, default values will be used." />
135-
</Target>
136-
13774
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
13875
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
13976
</PropertyGroup>

src/PEVerify.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<Features>$(Features);peverify-compat</Features>
1111
</PropertyGroup>
1212

13-
<Target Name="Run PEVerify" AfterTargets="Build" Condition="$(IsFramework) AND $(RunPeVerify)">
13+
<Target Name="Run PEVerify" AfterTargets="Build" Condition="$(IsFramework) AND $(RunPeVerify) AND '$(OS)' == 'Windows_NT' ">
1414
<ItemGroup>
1515
<_OutputFileToVerify Include="@(FileWrites)" Condition="'%(Extension)' == '.dll' AND $([System.Text.RegularExpressions.Regex]::IsMatch('%(FullPath)', '.+\\bin\\.+'))" />
1616
</ItemGroup>

0 commit comments

Comments
 (0)