[release/10.0.1xx] [CI] Misc fixes#24896
[release/10.0.1xx] [CI] Misc fixes#24896rolfbjarne wants to merge 20 commits intorelease/10.0.1xxfrom
Conversation
This fixes the following problem: * We default the max simulator version to the SDK version of an OS (currently 26.2) * However, iOS/tvOS 26.3 exists, and that's the simulator 'xcodebuild -downloadPlatform' installs with Xcode 26.3. * The max simulator version is what we use in xharness to decide which simulator to run tests in. * The result is that xharness will try to use/create a simulator for iOS 26.2, but that might not be possible (unless said simulator was already installed from before the current build), because it wasn't provisioned.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… iOS/tvOS 26.3 Replace xamvideotest.mp4 with a freshly-generated, well-formed H.264 Baseline video. The old video (created in 2015 by Mainconcept encoder) had non-standard dimensions (438x434, not multiples of 16) and produced codecBadDataErr (-8969) on iOS/tvOS 26.4 simulators where the decoder is stricter. The new video uses standard dimensions (320x240), H.264 Constrained Baseline profile, and is generated with ffmpeg to ensure well-formed NAL units. Also add WaitForAsynchronousFrames() after FinishDelayedFrames() in all async decode tests. FinishDelayedFrames() directs the session to emit all delayed frames, but WaitForAsynchronousFrames() is needed to block until all async callbacks have completed before checking assertions. Fixes #24844 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…n auth Replace all uses of the xamops.azdevex.provisionator-task.provisionator@3 AzDO task with a new provision.yml template that uses the provisionator-bootstrap.sh script with BosStorageMirror SAS token authorization. This bypasses dl.internalx.com entirely, which suffers from 502 timeouts under concurrent load (>10 parallel requests) due to sequential KeyVault token scanning hitting the 120s httpPlatform request timeout. The new approach: - Generates short-lived SAS tokens via AzurePowerShell@5 - Downloads provisionator directly from bosstoragemirror.blob.core.windows.net - Eliminates the dl.internalx.com bottleneck This follows the same pattern already adopted by the AgentCleanser and ClientTools.Provisionator pipelines. Note: The pipeline will need the 'Xamarin - RelEng (BosStorageMirror-Contributor-MI)' Azure service connection authorized for the macios pipeline. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add shellcheck disable directives for SC2220 (missing *) case in getopts) and SC2181 (indirect exit code check with $?) since this is an upstream script from ClientTools.Provisionator. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Backports CI changes to run Provisionator via a shared template + bootstrap script, switching authentication to short-lived BosStorageMirror SAS tokens (instead of the AzDO Provisionator task/GitHub token), to reduce dl.internalx.com timeout issues under load.
Changes:
- Replaced direct
xamops.azdevex.provisionator-task.provisionator@2usages with a sharedtemplates/common/provision.ymltemplate. - Added
templates/common/provision.ymlto generate SAS tokens via AzureCLI and invoke a newprovisionator-bootstrap.shscript. - Added
provisionator-bootstrap.sh(and a local.gitignore) to download/cache Provisionator from BosStorageMirror and execute it.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/devops/automation/templates/windows/reserve-mac.yml | Switch Xcode provisioning to the shared provision template. |
| tools/devops/automation/templates/tests/build.yml | Switch test dependency provisioning to the shared provision template. |
| tools/devops/automation/templates/mac/build.yml | Switch (disabled) brew provisioning step to shared template wiring. |
| tools/devops/automation/templates/build/build.yml | Switch product/framework provisioning to shared template (preserving retry behavior). |
| tools/devops/automation/templates/common/provision.yml | New template: generate SAS tokens + invoke bootstrap script with env-based auth. |
| tools/devops/automation/scripts/provisionator-bootstrap.sh | New bootstrapper: download Provisionator from BosStorageMirror (SAS) and execute. |
| tools/devops/automation/scripts/.gitignore | Ignore extracted _provisionator cache directory. |
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.
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.
…o have consistent results. (#24574) Use an autorelease pool to ensure object lifetime is consistent, and thus asserts work as expected.
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.
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.
1. Split the AdaptiveTest into 4 different tests to make it easier to figure out where crashes occur. 2. Use autorelease pools to have more consistent memory management. This means the OnReleaseInfo callbacks will be called during the test, so adjust accordingly. 3. Create a CGRenderingBufferProvider in OnAllocate callbacks. This seems to be what fixes the crash. This also makes it so that the calls to CGBitmapContext.ToImage() succeed, so adjust accordingly.
…correct buffer size. (#24862) The hardcoded 512-byte rendering buffer was far too small for a 256x256 adaptive bitmap context. Replace with the correct size computed from the adaptive parameters (AlignedBytesPerRow * Height) to avoid SIGSEGV in CGBitmapContextCreateImage when it tries to read beyond the buffer. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ized buffer (#24920) CreateAdaptive_3 and CreateAdaptive_4 used a hardcoded 512-byte buffer for a 256x256 adaptive bitmap context. When ToImage() called CGBitmapContextCreateImage, CoreGraphics tried to copy the bitmap data from this tiny buffer, reading past the allocation and causing a SIGSEGV. Fix CreateAdaptive_3 by computing the buffer size from parameters.AlignedBytesPerRow * parameters.Height (matching CreateAdaptive_2). Fix CreateAdaptive_4 by using a 1MB buffer, large enough for any 256x256 adaptive bitmap format. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
✅ [CI Build #dbbcc8f] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #dbbcc8f] 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 #dbbcc8f] Build passed (Build macOS tests) ✅Pipeline on Agent |
💻 [CI Build #dbbcc8f] Tests on macOS M1 - Mac Monterey (12) passed 💻✅ All tests on macOS M1 - Mac Monterey (12) passed. Pipeline on Agent |
💻 [CI Build #dbbcc8f] Tests on macOS X64 - Mac Sonoma (14) passed 💻✅ All tests on macOS X64 - Mac Sonoma (14) passed. Pipeline on Agent |
💻 [CI Build #dbbcc8f] Tests on macOS arm64 - Mac Sequoia (15) passed 💻✅ All tests on macOS arm64 - Mac Sequoia (15) passed. Pipeline on Agent |
💻 [CI Build #dbbcc8f] Tests on macOS M1 - Mac Ventura (13) passed 💻✅ All tests on macOS M1 - Mac Ventura (13) passed. Pipeline on Agent |
💻 [CI Build #dbbcc8f] Tests on macOS arm64 - Mac Tahoe (26) passed 💻✅ All tests on macOS arm64 - Mac Tahoe (26) passed. Pipeline on Agent |
🔥 [CI Build #dbbcc8f] Test results 🔥Test results❌ Tests failed on VSTS: test results 0 tests crashed, 16 tests failed, 114 tests passed. Failures❌ linker tests8 tests failed, 36 tests passed.Failed tests
Html Report (VSDrops) Download ❌ monotouch tests (iOS)7 tests failed, 4 tests passed.Failed tests
Html Report (VSDrops) Download ❌ monotouch tests (MacCatalyst)1 tests failed, 14 tests passed.Failed tests
Html Report (VSDrops) Download Successes✅ cecil: All 1 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
Misc CI fixes: