Add freebsd-arm64 CI - #131083
Conversation
|
Azure Pipelines: Successfully started running 5 pipeline(s). 11 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
|
Workflow state for the Holistic Review Orchestrator. {
"version": 5,
"last_dispatched_commit": "7d4d9675f085487cbab076db78f6bf376991a68a",
"last_dispatched_base_ref": "main",
"last_dispatched_base_sha": "af85196d561d26c2f8a0589d435cffed1c90752c",
"last_reviewed_commit": "7d4d9675f085487cbab076db78f6bf376991a68a",
"last_reviewed_base_ref": "main",
"last_reviewed_base_sha": "af85196d561d26c2f8a0589d435cffed1c90752c",
"last_recorded_worker_run_id": "29751400033",
"review_attempt_commit": "",
"review_attempt_base_ref": "",
"review_attempt_count": 0,
"max_review_attempts": 5,
"review_history_format": "holistic-review-disclosure-v1",
"review_history": [
{
"commit": "7d4d9675f085487cbab076db78f6bf376991a68a",
"review_id": 4736063278
}
]
} |
There was a problem hiding this comment.
Holistic Review
Motivation: The PR adds FreeBSD arm64 to the CI matrix to provide build validation that prevents regressions of the sort seen in #130901, complementing the existing FreeBSD x64 coverage.
Approach: Three coordinated pipeline edits: (1) platform-matrix.yml gains a freebsd_arm64 job block gated on containsValue(parameters.platforms, 'freebsd_arm64'), mirroring the existing freebsd_x64 block (cross build, container: freebsd_arm64, helixQueueGroup); (2) pipeline-with-resources.yml registers the freebsd_arm64 container resource pointing at the cross-freebsd-14-arm64 prereqs image with ROOTFS_DIR: /crossrootfs/arm64; (3) runtime.yml adds freebsd_arm64 to the CoreCLR+Libs+Host bootstrapped build platform list. The comment reorganization (# FreeBSD -> # FreeBSD x64 / # FreeBSD arm64, # OpenBSD -> # OpenBSD x64) is cosmetic clarification.
Summary: The change is a faithful, self-consistent extension of the established cross-BSD CI pattern. The new job block matches the freebsd_x64 template field-for-field with the correct archType/targetRid/platform/container values; the container resource uses an arm64-specific image digest and the correct ROOTFS_DIR: /crossrootfs/arm64; and the platform is wired into a rolling/PR conditional build job. No functional runtime code is touched and the risk is confined to CI. I found no correctness, security, or consistency issues. Verdict: LGTM.
Note
This review was generated by this repository's Holistic Review agentic workflow to complement the built-in Copilot review.
Generated by Holistic Review · 45.5 AIC · ⌖ 14.4 AIC · ⊞ 10K
|
Do we really need this? What are the chances of Arm64 FreeBSD being broken given the existing coverage? I understand that regression can sneak through every once in a while. We live with the similar risk in number of other configurations too. |
|
LGTM. |
Doing builds under 15.x will fail - dotnet/msbuild#12944 |
|
@jkotas, for reducing pressure on Azure DevOps, we can add GitHub Actions leg for community platform matrix. Timing wise, bootstrap builds run in parallel and complete before many other legs. If it's about not bothering people about failures of community platforms, since these breakages are rare and often easy to fix, I think it should be fine (AI can also assist in those rare cases). @Thefrank, opened dotnet/arcade#17155. 14.4 will EOL in Dec 2026, this matrix has lowest supported version (FreeBSD 14.4 and OpenBSD 7.8 etc.) |
|
Change lgtm. Once @jkotas agrees its worth adding this gate, we can merge. |
|
Can this be in runtime-extra-platforms ? We will still get notified soon enough when a break sneaks through and it can be triggered manually as needed. |
jkoritzinsky
left a comment
There was a problem hiding this comment.
Can we keep at least two of these jobs (freebsd_x64 and linux_risv64) in the runtime pipeline? They provide the coverage of the bootstrapped logic within the runtime repo and freebsd_x64 provides coverage of the cross-OS build scenario.
runtime-community for the rest sounds good to me.
|
It will run twice a day so if something breaks unintentionally we will know in a few hours. PRs touching the infra can proactively trigger the pipeline with |
Build validation to prevent regressions (like #130901).