-
Notifications
You must be signed in to change notification settings - Fork 555
Enable partial Linux builds for Copilot support #24494
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
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
rolfbjarne
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 the network problems have been fixed, please try again
…holder' instead of 'dummy', keep INCLUDE_* variables Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
Tested successfully! The build now progresses much further:
The repository now builds successfully on Linux up to the point where Xcode/native tools are required. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@copilot Skip the runtime directory in the top-level Makefile when building on Linux. In fact, skip any directory that requires native compilation by skipping it in the parent directory's Makefile. |
Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
Done in commit c5ff867. The |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@copilot Add a CI job/stage to verify that this doesn't regress. |
Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
Added in commit e807828. Created a GitHub Actions workflow (
The workflow will fail if any of these Linux build capabilities regress. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
✅ [PR Build #8b76d8e] Build passed (Detect API changes) ✅Pipeline on Agent |
✅ [CI Build #8b76d8e] Build passed (Build packages) ✅Pipeline on Agent |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
✅ [CI Build #8b76d8e] Build passed (Build macOS tests) ✅Pipeline on Agent |
💻 [CI Build #8b76d8e] Tests on macOS X64 - Mac Sonoma (14) passed 💻✅ All tests on macOS X64 - Mac Sonoma (14) passed. Pipeline on Agent |
💻 [CI Build #8b76d8e] Tests on macOS M1 - Mac Monterey (12) passed 💻✅ All tests on macOS M1 - Mac Monterey (12) passed. Pipeline on Agent |
💻 [CI Build #8b76d8e] Tests on macOS arm64 - Mac Sequoia (15) passed 💻✅ All tests on macOS arm64 - Mac Sequoia (15) passed. Pipeline on Agent |
💻 [CI Build #8b76d8e] Tests on macOS M1 - Mac Ventura (13) passed 💻✅ All tests on macOS M1 - Mac Ventura (13) passed. Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💻 [CI Build #8b76d8e] Tests on macOS arm64 - Mac Tahoe (26) passed 💻✅ All tests on macOS arm64 - Mac Tahoe (26) passed. Pipeline on Agent |
🚀 [CI Build #8b76d8e] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 117 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
Plan: Enable Building on Linux
system-dependencies.shto skip macOS-only checksMake.configto handle missing Xcode variablesbuilds/Makefilefor Linux compatibility (use CP variable)makeiterates intobuildsandsrc(skipsruntime) ✅Changes Made:
cp -c, create cache directory before useset -ex, just verifiesmakesucceeds, uses parallel make (-j) for speedDotnetGlobals.cs→DotNetGlobals.cs-Fsinstead of-Fhs(GNU ln doesn't support -h flag)Result: Successfully builds on Linux through .NET download and into builds/src/msbuild/tools/tests directories. Builds cleanly on macOS without leaving untracked files. Skips runtime, dotnet, and test-libraries directories that require native compilation or macOS platform. Uses cleaner conditional addition pattern for SUBDIRS. Fixed multiple case-sensitivity, sed syntax (using bash arrays), ln command flags, and git command issues. Simplified CI workflow with parallel make ensures fast builds and prevents regressions.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.