[devops] Move Linux build verification from GitHub Actions to Azure DevOps#24926
[devops] Move Linux build verification from GitHub Actions to Azure DevOps#24926rolfbjarne wants to merge 2 commits intomainfrom
Conversation
…evOps Replace the GitHub Actions workflow (.github/workflows/linux-build.yml) with a new Azure DevOps stage that runs in parallel with the existing pipeline stages. The new stage checks out the code on a Linux agent, verifies system dependencies, and runs 'make' to confirm the build succeeds. The stage is added to both the official build pipeline (main-stage.yml) and the test pipeline (tests-stage.yml), using the appropriate Linux pool for each (1ES pool for official, ubuntu-latest for tests). This solves a problem with the GitHub action where it wouldn't run if the last commit was from another GitHub action (which is a good thing). This is problematic, because this happens fairly often (autoformat, global.json generation), and it means such pull requests require admin rigths to merge, because the linux validation is a required check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Moves Linux build validation from a GitHub Actions workflow to an Azure DevOps stage template, so Linux build verification runs reliably as part of the existing Azure DevOps pipelines.
Changes:
- Adds a reusable
linux-build-verificationstage template that checks system dependencies and runsmakeon a Linux agent. - Wires the new Linux stage into both the main build stage template and the tests stage template (with appropriate pools/defaults).
- Removes the GitHub Actions
linux-build.ymlworkflow that previously performed the Linux build verification.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| tools/devops/automation/templates/tests-stage.yml | Adds the Linux build verification stage to the tests pipeline stage graph. |
| tools/devops/automation/templates/main-stage.yml | Adds the Linux build verification stage to the main (official) pipeline stages using a 1ES Linux pool. |
| tools/devops/automation/templates/build/linux-build-verification.yml | New stage template to checkout, run system-dependencies.sh, and build via make on Linux. |
| .github/workflows/linux-build.yml | Removes the GitHub Actions Linux build verification workflow in favor of Azure DevOps. |
You can also share your feedback on Copilot code review. Take the survey.
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.
…mment Move the Linux build verification stage from main-stage.yml (official build pipeline) to tests-stage.yml only, so it runs in the xamarin-macios-sim-pr|ci-tests pipelines. Include the Linux build result in the final GitHub comment posted by the publish_test_results stage: - Add linux_build_verification to publish-results.yml dependsOn - Add LinuxBuildStatus property to ParallelTestsResults - Extract the status from stageDependencies in Create() - Include a 'Linux Build Verification' section in WriteComment() - Factor Linux build failure into IsSuccess() Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
✅ [CI Build #722b1f1] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #722b1f1] Build passed (Detect API changes) ✅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 #722b1f1] Build passed (Build macOS tests) ✅Pipeline on Agent |
🚀 [CI Build #722b1f1] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 156 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Replace the GitHub Actions workflow (.github/workflows/linux-build.yml)
with a new Azure DevOps stage that runs in parallel with the existing
pipeline stages. The new stage checks out the code on a Linux agent,
verifies system dependencies, and runs 'make' to confirm the build
succeeds.
The stage is added to both the official build pipeline (main-stage.yml)
and the test pipeline (tests-stage.yml), using the appropriate Linux
pool for each (1ES pool for official, ubuntu-latest for tests).
This solves a problem with the GitHub action where it wouldn't run if the last
commit was from another GitHub action (which is a good thing). This is
problematic for us though, because this happens fairly often (autoformat, global.json
generation), and it means such pull requests require admin rigths to merge,
because the linux validation is a required check.