-
Notifications
You must be signed in to change notification settings - Fork 830
Add Azure DevOps template for F# compiler regression testing #19121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
…ath query Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
T-Gro
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot : Address all comments
…level, add imageOverride parameter Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
✅ No release notes required |
…and add Linux config Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
…e message Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
T-Gro
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot :
Still the same msbuild error.
Please add any necessary instrumentation to the scripts to find out more.
This is what git clone now reports:
Cloning repository: fsprojects/FSharpPlus
Cloning into '/home/vsts/work/1/TestRepo'...
Submodule 'external/FSharp.TypeProvider.SDK' (https://github.com/fsprojects/FSharp.TypeProviders.SDK.git) registered for path 'external/FSharp.TypeProviders.SDK'
Cloning into '/home/vsts/work/1/TestRepo/external/FSharp.TypeProviders.SDK'...
Submodule path 'external/FSharp.TypeProviders.SDK': checked out 'dc8c662ca2e7d8d11048968ca166df6dc2fd9482'
Checking out commit: f614035b75922aba41ed6a36c2fc986a2171d2b8
Note: switching to 'f614035b75922aba41ed6a36c2fc986a2171d2b8'.
Details are here: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1214979&view=logs&j=a12d628d-ea76-55ae-77dc-8d4a38a1bbdd&t=cb0e394c-99c2-534f-4a03-551105bf238a
You must reproduce locally.
You must try more tests locally. E.g. try different combinations of building FSharpPlus locally (look at there .proj file, maybe try picking a target without type providers first)
….props expectations Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Fixed the root cause. The issue was that artifact download paths didn't include Changes:
Verified locally - FSharpPlus TypeProviders now builds successfully with local compiler. Commit: 6f5b60d |
…env var Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
|
Let's remove the working .md files? And then it looks good to me |
Summary
Implements a reusable Azure DevOps template for F# compiler regression testing.
Changes in This Commit
MSBUILDBINARYLOGGERENABLEDenvironment variabledotnet pack build.proj -bl:build.binlogwith explicit binary loggerLoadLocalFSharpBuildto useTrue(proper capitalization)Test Matrix
dotnet pack build.proj -bl:build.binlogon DncEngPublicBuildPoolOriginal prompt
Task: Implement Reusable Azure DevOps Template for F# Compiler Regression Testing
Original PR Description & Requirements
Implement a reusable Azure DevOps template for F# compiler regression testing, integrated with the existing PR pipeline infrastructure.
Overview
The new template (
eng/templates/regression-test-jobs.yml) provides a standardized way to test the F# compiler against real-world F# libraries, helping catch regressions early in the development process.Key Features
EndToEndBuildTestsjob inazure-pipelines-PR.yml, eliminating duplication and reusing established build patterns.f614035b) - Tests advanced F# language featuresartifacts/bin/fscandartifacts/bin/FSharp.Core) instead of the entire artifacts folder, reducing artifact size from 1.8GB to ~79MB while maintaining full functionality.Complete Workflow
EndToEndBuildTestsjob (optimized compiler build + UseLocalCompiler.Directory.Build.props)useGlobalJson: trueUseLocalCompiler.Directory.Build.propsreferencesLocalFSharpCompilerPath,LoadLocalFSharpBuild)Template Structure
The template defines parameterized jobs that can be easily extended:
Integration Points
FSharpCompilerFscArtifactsandFSharpCoreArtifactsalong withUseLocalCompilerPropsartifactsEndToEndBuildTestsExtensibility
Adding new libraries requires only updating the
testMatrixparameter with repository details, commit SHA, and build script. The template handles all environment setup and artifact management automatically.Files and changes to apply
eng/templates/regression-test-jobs.ymlimplementing the regression test job template as in the previous PR.azure-pipelines-PR.ymlto publish focused artifacts and invoke the regression test template with a matrix containing FSharpPlus.docs/regression-testing-pipeline.mdexplaining the design and usage, as in the previous PR.All details, workflow, and YAML logic must match the solution in the previous PR (#18803).
References:
eng/templates/regression-test-jobs.yml,azure-pipelines-PR.yml,docs/regression-testing-pipeline.mdAdditional Execution Instructions
Work Tracking & Documentation
TODO.mdfile for tracking your work. Break down the task into actionable items and check them off as you progress.OBSTACLES.mdfile. If you get stuck, log it here.DECISIONS.md. Elaborate on the options considered and the choice made.SCRIPT_ATTEMPTS.md) to document attempts to run them, including specific trials and errors.Build Configuration
fsc.exe.EndToEndBuildTests(Release config).General Guidelines
This pull request was created as a result of the following prompt from Copilot chat.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.