@@ -56,8 +56,10 @@ stages:
5656- stage : RegressionTest
5757 displayName : F# Compiler Regression Tests
5858 jobs :
59+ # Note: This pipeline should be integrated with azure-pipelines-PR.yml EndToEndBuildTests job
60+ # For now, keeping a minimal build job until architectural integration is completed
5961 - job : BuildCompiler
60- displayName : Build F# Compiler
62+ displayName : Build F# Compiler (temporary - should use EndToEndBuildTests)
6163 pool :
6264 name : $(DncEngPublicBuildPool)
6365 demands : ImageOverride -equals $(WindowsMachineQueueName)
@@ -159,35 +161,16 @@ stages:
159161 exit 1
160162 }
161163
162- # Detect .NET SDK version from global.json if it exists
163- - task : PowerShell@2
164- displayName : ' Detect .NET SDK version for $(DisplayName)'
165- inputs :
166- script : |
167- Set-Location $(Pipeline.Workspace)/TestRepo
168-
169- if (Test-Path "global.json") {
170- Write-Host "Found global.json, reading .NET SDK version"
171- $globalJson = Get-Content "global.json" | ConvertFrom-Json
172- $sdkVersion = $globalJson.sdk.version
173- Write-Host "Detected .NET SDK version: $sdkVersion"
174- Write-Host "##vso[task.setvariable variable=DotNetSdkVersion]$sdkVersion"
175- } else {
176- Write-Host "No global.json found, will use latest public SDK"
177- Write-Host "##vso[task.setvariable variable=DotNetSdkVersion]10.x"
178- }
179-
180- # Install appropriate .NET SDK version
164+ # Install appropriate .NET SDK version using global.json if present
181165 - task : UseDotNet@2
182166 displayName : ' Install .NET SDK for $(DisplayName)'
183167 inputs :
184168 packageType : sdk
185- version : $(DotNetSdkVersion)
186- includePreviewVersions : true
169+ useGlobalJson : true
187170 workingDirectory : $(Pipeline.Workspace)/TestRepo
188171 installationPath : $(Pipeline.Workspace)/TestRepo/.dotnet
189172
190- # Setup Directory.Build.props and UseLocalCompiler configuration using F# script
173+ # Setup Directory.Build.props to import UseLocalCompiler configuration
191174 - task : PowerShell@2
192175 displayName : ' Setup local compiler configuration for $(DisplayName)'
193176 inputs :
@@ -200,7 +183,7 @@ stages:
200183 open System.IO
201184 open System.Xml
202185
203- let useLocalCompilerImport = """<Import Project="UseLocalCompiler.Directory.Build.props" />"""
186+ let useLocalCompilerImport = """<Import Project="$(Pipeline.Workspace)/Props/ UseLocalCompiler.Directory.Build.props" />"""
204187
205188 let directoryBuildPropsPath = "Directory.Build.props"
206189
@@ -213,10 +196,10 @@ stages:
213196 let projectElement = doc.SelectSingleNode("/Project")
214197 if projectElement <> null then
215198 // Check if our import already exists
216- let existingImport = doc.SelectSingleNode(sprintf "//Import[@Project='UseLocalCompiler.Directory.Build.props']")
199+ let existingImport = doc.SelectSingleNode(sprintf "//Import[@Project='$(Pipeline.Workspace)/Props/ UseLocalCompiler.Directory.Build.props']")
217200 if existingImport = null then
218201 let importElement = doc.CreateElement("Import")
219- importElement.SetAttribute("Project", "UseLocalCompiler.Directory.Build.props")
202+ importElement.SetAttribute("Project", "$(Pipeline.Workspace)/Props/ UseLocalCompiler.Directory.Build.props")
220203 projectElement.InsertBefore(importElement, projectElement.FirstChild) |> ignore
221204 doc.Save(directoryBuildPropsPath)
222205 printfn "Added UseLocalCompiler import to existing Directory.Build.props"
@@ -238,11 +221,7 @@ stages:
238221 # Run the F# script using dotnet fsi
239222 dotnet fsi PrepareRepoForTesting.fsx
240223
241- # Copy UseLocalCompiler.Directory.Build.props as-is (path will be set via environment variable)
242- Copy-Item "$(Pipeline.Workspace)/Props/UseLocalCompiler.Directory.Build.props" "UseLocalCompiler.Directory.Build.props" -Force
243-
244- Write-Host "UseLocalCompiler.Directory.Build.props content (first 20 lines):"
245- Get-Content "UseLocalCompiler.Directory.Build.props" | Select-Object -First 20
224+ Write-Host "UseLocalCompiler.Directory.Build.props will be referenced from: $(Pipeline.Workspace)/Props/UseLocalCompiler.Directory.Build.props"
246225
247226 # Report dotnet info in test environment
248227 - task : PowerShell@2
@@ -310,14 +289,14 @@ stages:
310289 exit $exitCode
311290 }
312291
313- # Capture and publish build logs on failure
314- # Publish only MSBuild binary logs
292+ # Publish only MSBuild binary logs for efficient storage
315293 - task : PublishPipelineArtifact@1
316294 displayName : ' Publish $(DisplayName) Binary Logs'
317295 inputs :
318296 targetPath : ' $(Pipeline.Workspace)/TestRepo'
319297 artifactName : ' $(DisplayName)_BinaryLogs'
320298 publishLocation : pipeline
299+ artifact : ' *.binlog'
321300 condition : always()
322301 continueOnError : true
323302
0 commit comments