Skip to content

[devops] Move Linux build verification from GitHub Actions to Azure DevOps#24926

Open
rolfbjarne wants to merge 2 commits intomainfrom
dev/rolf/linux-on-devops
Open

[devops] Move Linux build verification from GitHub Actions to Azure DevOps#24926
rolfbjarne wants to merge 2 commits intomainfrom
dev/rolf/linux-on-devops

Conversation

@rolfbjarne
Copy link
Member

@rolfbjarne rolfbjarne commented Mar 18, 2026

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.

…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>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-verification stage template that checks system dependencies and runs make on 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.yml workflow 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.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

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>
@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ [CI Build #722b1f1] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 722b1f1e429a56975bc694f57521c61462178206 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ [PR Build #722b1f1] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: 722b1f1e429a56975bc694f57521c61462178206 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 722b1f1e429a56975bc694f57521c61462178206 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ [CI Build #722b1f1] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 722b1f1e429a56975bc694f57521c61462178206 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🚀 [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
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker: All 44 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 12 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 11 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Ventura (13): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 722b1f1e429a56975bc694f57521c61462178206 [PR build]

@rolfbjarne rolfbjarne marked this pull request as ready for review March 20, 2026 10:14
@rolfbjarne rolfbjarne enabled auto-merge (squash) March 20, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants