Skip to content

Commit 61bd2de

Browse files
committed
User Story 33636: Add Linux build support
- Minimal build changes to get everything to compile on Linux. - Fixed BuildTools target errors. - Changed all <TargetFramework> elements to <TargetFrameworks> which provides better dotnet build output. - Removed unused and obsolete build properties. - Cleaned up BUILDGUIDE. - Replaced <TargetGroup> property with <TargetsNetFx> everywhere. - Normalized how we specify and check the ReferenceType property. - Reorganized how project vs package references are used in build.proj. - Explicity unsetting 'TF' variable inherited from 'ADO Build Properties' library. - Removed 'Update AKV MDS package version' step. - Added TestMicrosoftDataSqlClientVersion property to AKV Package build steps. - Updated CI test step to use new runtime-specific build.proj targets.
1 parent bc7925f commit 61bd2de

33 files changed

+856
-445
lines changed

BUILDGUIDE.md

Lines changed: 53 additions & 51 deletions
Large diffs are not rendered by default.

build.proj

Lines changed: 364 additions & 141 deletions
Large diffs are not rendered by default.

eng/pipelines/common/templates/jobs/validate-signed-package-job.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ jobs:
343343
displayName: 'Modify TestMicrosoftDataSqlClientVersion'
344344
345345
- powershell: |
346-
# Check assembly versions.
346+
# Check AssemblyFileVersion
347347
348348
[Xml] $versionprops = Get-Content -Path "tools/props/Versions.props"
349349
$AssemblyFileVersion = $versionprops.Project.PropertyGroup[0].AssemblyFileVersion

eng/pipelines/common/templates/steps/build-all-tests-step.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,6 @@ steps:
4242
configuration: '${{parameters.configuration }}'
4343
msbuildArguments: '-t:BuildTestsNetFx -p:TF=${{parameters.targetFramework }} -p:TestSet=${{parameters.testSet }} -p:ReferenceType=${{parameters.referenceType }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.nugetPackageVersion }}'
4444

45-
# - ${{else if contains(parameters.targetFramework, 'netstandard')}}: # .NET Standard
46-
# - task: MSBuild@1
47-
# displayName: 'Build Tests NetStandard'
48-
# inputs:
49-
# solution: build.proj
50-
# platform: '${{parameters.platform }}'
51-
# configuration: '${{parameters.configuration }}'
52-
# msbuildArguments: '-t:BuildTestsNetCore -p:ReferenceType=NetStandard -p:TargetNetStandardVersion=${{parameters.targetNetStandardVersion }} -p:TF=${{parameters.targetFramework }} -p:ReferenceType=${{parameters.referenceType }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.nugetPackageVersion }}'
53-
# condition: and(succeeded(), not(startsWith(variables['TF'], 'net4')), startsWith(variables['TargetNetStandardVersion'], 'netstandard'))
54-
5545
- ${{elseif eq(parameters.OSGroup, '')}}: # .NET on Windows
5646
- task: MSBuild@1
5747
displayName: 'Build Tests NetCore [Win]'

eng/pipelines/common/templates/steps/build-and-run-tests-netcore-step.yml

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@ parameters:
3030
type: boolean
3131
default: false
3232

33-
- name: TestTargetOS
34-
type: string
35-
default: Windowsnetcoreapp
36-
values:
37-
- Windowsnetfx
38-
- Windowsnetcoreapp
39-
- Unixnetcoreapp
40-
4133
- name: retryCountOnManualTests
4234
type: number
4335
default: 2
@@ -62,21 +54,21 @@ steps:
6254
inputs:
6355
solution: build.proj
6456
msbuildArchitecture: x64
65-
msbuildArguments: '-t:BuildTestsNetCore -p:ReferenceType=${{parameters.referenceType }} -p:TargetNetCoreVersion=${{parameters.TargetNetCoreVersion }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} -p:Configuration=${{parameters.configuration }}'
57+
msbuildArguments: '-t:BuildTestsNetCore -p:ReferenceType=${{parameters.referenceType }} -p:TF=${{parameters.TargetNetCoreVersion }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} -p:Configuration=${{parameters.configuration }}'
6658

6759
# Don't run unit tests using package reference. Unit tests are only run using project reference.
6860

6961
- task: DotNetCoreCLI@2
7062
displayName: 'Run Functional Tests for ${{parameters.TargetNetCoreVersion }}'
7163
inputs:
7264
command: test
73-
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.FunctionalTests.csproj'
74-
arguments: '-p:Platform=${{parameters.platform }} -p:TestTargetOS="${{parameters.TestTargetOS }}" -p:TargetNetCoreVersion=${{parameters.TargetNetCoreVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter "category!=nonnetcoreapptests&category!=failing&category!=nonwindowstests"'
65+
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.Tests.csproj'
66+
arguments: '-p:Platform=${{parameters.platform }} -p:TF=${{parameters.TargetNetCoreVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter "category!=nonnetcoreapptests&category!=failing&category!=nonwindowstests"'
7567

7668
- task: DotNetCoreCLI@2
7769
displayName: 'Run Manual Tests for ${{parameters.TargetNetCoreVersion }}'
7870
inputs:
7971
command: test
8072
projects: 'src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj'
81-
arguments: '-p:Platform=${{parameters.platform }} -p:TestTargetOS="${{parameters.TestTargetOS }}" -p:TargetNetCoreVersion=${{parameters.TargetNetCoreVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter category!=nonnetcoreapptests&category!=failing&category!=nonwindowstests --collect "Code Coverage"'
73+
arguments: '-p:Platform=${{parameters.platform }} -p:TF=${{parameters.TargetNetCoreVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter category!=nonnetcoreapptests&category!=failing&category!=nonwindowstests --collect "Code Coverage"'
8274
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}

eng/pipelines/common/templates/steps/build-and-run-tests-netfx-step.yml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@ parameters:
3030
type: boolean
3131
default: false
3232

33-
- name: TestTargetOS
34-
type: string
35-
default: Windowsnetfx
36-
values:
37-
- Windowsnetfx
38-
- Windowsnetcoreapp
39-
- Unixnetcoreapp
40-
4133
- name: retryCountOnManualTests
4234
type: number
4335
default: 2
@@ -61,7 +53,7 @@ steps:
6153
displayName: 'MSBuild Build Tests for ${{parameters.TargetNetFxVersion }}'
6254
inputs:
6355
solution: build.proj
64-
msbuildArguments: ' -t:BuildTestsNetFx -p:ReferenceType=${{parameters.referenceType }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} -p:TargetNetFxVersion=${{parameters.TargetNetFxVersion }} -p:Configuration=${{parameters.configuration }} -p:Platform=${{parameters.platform }}'
56+
msbuildArguments: ' -t:BuildTestsNetFx -p:ReferenceType=${{parameters.referenceType }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} -p:TF=${{parameters.TargetNetFxVersion }} -p:Configuration=${{parameters.configuration }} -p:Platform=${{parameters.platform }}'
6557

6658
# Don't run unit tests using package reference. Unit tests are only run using project reference.
6759

@@ -70,12 +62,12 @@ steps:
7062
inputs:
7163
command: test
7264
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.FunctionalTests.csproj'
73-
arguments: '-p:Platform=${{parameters.platform }} -p:TestTargetOS="${{parameters.TestTargetOS }}" -p:TargetNetFxVersion=${{parameters.TargetNetFxVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter "category!=nonnetfxtests&category!=failing&category!=nonwindowstests" --collect "Code Coverage"'
65+
arguments: '-p:Platform=${{parameters.platform }} -p:TF=${{parameters.TargetNetFxVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter "category!=nonnetfxtests&category!=failing&category!=nonwindowstests" --collect "Code Coverage"'
7466

7567
- task: DotNetCoreCLI@2
7668
displayName: 'Run Manual Tests for ${{parameters.TargetNetFxVersion }}'
7769
inputs:
7870
command: test
7971
projects: 'src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj'
80-
arguments: '-p:Platform=${{parameters.platform }} -p:TestTargetOS="${{parameters.TestTargetOS }}" -p:TargetNetFxVersion=${{parameters.TargetNetFxVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter "category!=nonnetfxtests&category!=failing&category!=nonwindowstests" --collect "Code Coverage"'
72+
arguments: '-p:Platform=${{parameters.platform }} -p:TF=${{parameters.TargetNetFxVersion }} -p:ReferenceType=${{parameters.referenceType }} -p:Configuration=${{parameters.configuration }} -p:TestMicrosoftDataSqlClientVersion=${{parameters.NugetPackageVersion }} --no-build -v n --filter "category!=nonnetfxtests&category!=failing&category!=nonwindowstests" --collect "Code Coverage"'
8173
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}

eng/pipelines/common/templates/steps/ci-project-build-step.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ parameters:
1818

1919
- name: operatingSystem
2020
type: string
21-
default: deferedToRuntime
21+
default: deferredToRuntime
2222
values:
2323
- Windows
2424
- Linux
2525
- MacOS
26-
- deferedToRuntime
26+
- deferredToRuntime
2727

2828
- name: build
2929
type: string
@@ -45,7 +45,7 @@ steps:
4545
packageType: 'runtime'
4646
version: '8.0'
4747

48-
- ${{ if or(eq(parameters.operatingSystem, 'Windows'), eq(parameters.operatingSystem, 'deferedToRuntime')) }}:
48+
- ${{ if or(eq(parameters.operatingSystem, 'Windows'), eq(parameters.operatingSystem, 'deferredToRuntime')) }}:
4949
- ${{ if or(eq(parameters.build, 'MDS'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
5050
- task: MSBuild@1
5151
displayName: 'Restore nugets [Win]'
@@ -91,6 +91,14 @@ steps:
9191
configuration: '${{ parameters.configuration }}'
9292
msbuildArguments: '-t:BuildAKVNetFx -p:BuildNumber=${{ parameters.buildNumber }}'
9393

94+
# - task: DotNetCoreCLI@2
95+
# displayName: 'Build AKV Provider NetFx (dotnet) [Win]'
96+
# condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
97+
# inputs:
98+
# command: build
99+
# projects: build.proj
100+
# arguments: '-t:BuildAKVNetFx -p:Platform=${{ parameters.platform }} -p:Configuration=${{ parameters.configuration }} -p:BuildNumber=${{ parameters.buildNumber }} -v detailed --no-restore'
101+
94102
- task: MSBuild@1
95103
displayName: 'Build AKV Provider NetCore All OS [Win]'
96104
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
@@ -101,7 +109,7 @@ steps:
101109
configuration: '${{ parameters.configuration }}'
102110
msbuildArguments: '-t:BuildAKVNetCoreAllOS -p:BuildNumber=${{ parameters.buildNumber }}'
103111

104-
- ${{ if or(eq(parameters.operatingSystem, 'Linux'), eq(parameters.operatingSystem, 'MacOS'), eq(parameters.operatingSystem, 'deferedToRuntime')) }}:
112+
- ${{ if or(eq(parameters.operatingSystem, 'Linux'), eq(parameters.operatingSystem, 'MacOS'), eq(parameters.operatingSystem, 'deferredToRuntime')) }}:
105113
- task: DotNetCoreCLI@2
106114
displayName: 'Build Driver [non-Win]'
107115
condition: and(succeeded(), ne(variables['Agent.OS'], 'Windows_NT'))

eng/pipelines/common/templates/steps/copy-dlls-for-test-step.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ parameters:
1717
default: software
1818

1919
- name: referenceType
20-
default: project
20+
default: Project
2121
values:
22-
- project
23-
- package
22+
- Project
23+
- Package
2424

2525
- name: listOfTF
2626
type: object

eng/pipelines/common/templates/steps/generate-nuget-package-step.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ parameters:
3333
default: true
3434

3535
- name: referenceType
36-
default: project
36+
default: Project
3737
values:
38-
- project
39-
- package
38+
- Project
39+
- Package
4040

4141
steps:
4242
- ${{ if parameters.installNuget }}:

eng/pipelines/common/templates/steps/publish-symbols-step.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ parameters:
3636
public: true
3737

3838
- name: referenceType
39-
default: project
39+
default: Project
4040
values:
41-
- project
42-
- package
41+
- Project
42+
- Package
4343

4444
- name: product
4545
default: MDS

0 commit comments

Comments
 (0)