Skip to content

Commit d2e4f7e

Browse files
CopilotJanProvaznik
andcommitted
Switch CI job from Windows to Linux for faster/cheaper builds
Co-authored-by: JanProvaznik <25267098+JanProvaznik@users.noreply.github.com>
1 parent 567faf6 commit d2e4f7e

2 files changed

Lines changed: 27 additions & 13 deletions

File tree

.vsts-dotnet-ci.yml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -246,33 +246,32 @@ jobs:
246246
condition: eq(variables.onlyDocChanged, 0)
247247

248248
- job: BootstrapMSBuildWithMTMode
249-
displayName: "Windows Core Multithreaded Mode"
249+
displayName: "Linux Core Multithreaded Mode"
250250
pool:
251-
vmImage: 'windows-2022'
251+
vmImage: 'ubuntu-latest'
252252
timeoutInMinutes: 120
253253
steps:
254254
- template: azure-pipelines/check-documentation-only-change.yml
255255
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
256-
- task: PowerShell@2
256+
- task: Bash@3
257257
displayName: Setup Private Feeds Credentials
258258
inputs:
259-
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
260-
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
259+
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
260+
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
261261
env:
262262
Token: $(dn-bot-dnceng-artifact-feeds-rw)
263-
- task: PowerShell@2
263+
- bash: sudo apt-get update
264+
- bash: sudo apt-get install -y libxml2
265+
- bash: . 'eng/cibuild_bootstrapped_msbuild.sh' --onlyDocChanged $(onlyDocChanged) --skipTests --stage2Properties '/mt'
264266
displayName: 'Build with bootstrapped MSBuild and -mt mode'
265-
inputs:
266-
filePath: $(Build.SourcesDirectory)/eng/cibuild_bootstrapped_msbuild.ps1
267-
arguments: -msbuildEngine dotnet -onlyDocChanged $(onlyDocChanged) -skipTests -stage2Properties '/mt'
268267
condition: eq(variables.onlyDocChanged, 0)
269268
env:
270269
MSBUILDUSESERVER: "1"
271270
- task: PublishBuildArtifacts@1
272271
displayName: 'Publish Artifact: logs'
273272
inputs:
274273
PathtoPublish: 'artifacts/log/Debug'
275-
ArtifactName: 'MTModeOnWindows build logs'
274+
ArtifactName: 'MTModeOnLinux build logs'
276275
continueOnError: true
277276
condition: always()
278277

eng/cibuild_bootstrapped_msbuild.sh

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ configuration="Debug"
44
host_type="core"
55
build_stage1=true
66
onlyDocChanged=0
7+
skipTests=false
78
properties=
89
extra_properties=
10+
stage2Properties=
911

1012
SOURCE="${BASH_SOURCE[0]}"
1113
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
@@ -34,6 +36,14 @@ while [[ $# -gt 0 ]]; do
3436
onlyDocChanged=$2
3537
shift 2
3638
;;
39+
--skiptests)
40+
skipTests=true
41+
shift 1
42+
;;
43+
--stage2properties)
44+
stage2Properties=$2
45+
shift 2
46+
;;
3747
*)
3848
properties="$properties $1"
3949
shift 1
@@ -88,10 +98,15 @@ export DOTNET_HOST_PATH="$_InitializeDotNetCli/dotnet"
8898
# When using bootstrapped MSBuild:
8999
# - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files)
90100
# - Create bootstrap environment as it's required when also running tests
101+
# - stage2Properties are passed to all Stage 2 builds since some MSBuild switches (like /mt) may not work with the SDK MSBuild used in Stage 1
91102
if [ $onlyDocChanged = 0 ]
92103
then
93-
. "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration $properties $extra_properties
94-
104+
if [ "$skipTests" = true ]
105+
then
106+
. "$ScriptRoot/common/build.sh" --restore --build --ci --nodereuse false --configuration $configuration $properties $extra_properties $stage2Properties
107+
else
108+
. "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration $properties $extra_properties $stage2Properties
109+
fi
95110
else
96-
. "$ScriptRoot/common/build.sh" --restore --build --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties
111+
. "$ScriptRoot/common/build.sh" --restore --build --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties $stage2Properties
97112
fi

0 commit comments

Comments
 (0)