[release/9.0.1xx] [CI] Misc fixes#24895
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>
…e/9.0.1xx-2026-03-12
Co-authored-by: Copilot <175728472+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
This PR backports #24893, which moves the CI provisioning from the xamops.azdevex.provisionator-task.provisionator@2 Azure DevOps task to a custom bootstrap shell script that authenticates via SAS tokens generated from Azure Blob Storage, avoiding dl.internalx.com timeout issues under concurrent load.
Changes:
- Adds a new reusable
provision.ymltemplate that generates short-lived SAS tokens via Azure CLI and invokes a bootstrap script to download and run provisionator. - Adds the
provisionator-bootstrap.shscript that handles downloading the provisionator binary from Azure Blob Storage (with SAS token) or falling back todl.internalx.com. - Replaces all four existing
provisionator@2task invocations (build, mac/build, tests/build, windows/reserve-mac) with the new template.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
tools/devops/automation/templates/common/provision.yml |
New reusable template: generates SAS tokens and runs the bootstrap script |
tools/devops/automation/scripts/provisionator-bootstrap.sh |
New bootstrap script to download and execute provisionator with SAS token or PAT auth |
tools/devops/automation/scripts/.gitignore |
Ignores the _provisionator extracted directory |
tools/devops/automation/templates/build/build.yml |
Replaces provisionator task with new template |
tools/devops/automation/templates/mac/build.yml |
Replaces provisionator task with new template |
tools/devops/automation/templates/tests/build.yml |
Replaces provisionator task with new template |
tools/devops/automation/templates/windows/reserve-mac.yml |
Replaces provisionator task with new template |
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.
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.
💻 [CI Build #b97d2e2] Tests on macOS X64 - Mac Sonoma (14) passed 💻✅ All tests on macOS X64 - Mac Sonoma (14) passed. Pipeline on Agent |
💻 [CI Build #b97d2e2] Tests on macOS M1 - Mac Monterey (12) passed 💻✅ All tests on macOS M1 - Mac Monterey (12) passed. Pipeline on Agent |
💻 [CI Build #b97d2e2] Tests on macOS arm64 - Mac Sequoia (15) passed 💻✅ All tests on macOS arm64 - Mac Sequoia (15) passed. Pipeline on Agent |
💻 [CI Build #b97d2e2] Tests on macOS M1 - Mac Ventura (13) passed 💻✅ All tests on macOS M1 - Mac Ventura (13) passed. Pipeline on Agent |
💻 [CI Build #b97d2e2] Tests on macOS arm64 - Mac Tahoe (26) passed 💻✅ All tests on macOS arm64 - Mac Tahoe (26) passed. Pipeline on Agent |
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.
) To try to track down #24143.
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 #29cc46a] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #29cc46a] 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 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🔥 [CI Build #29cc46a] Build failed (Build macOS tests) 🔥Build failed for the job 'Build macOS tests' (with job status 'Failed') Pipeline on Agent |
🔥 [CI Build #29cc46a] Test results 🔥Test results❌ Tests failed on VSTS: test results 0 tests crashed, 59 tests failed, 69 tests passed. Failures❌ dotnettests tests (iOS) [attempt 2]Details
Html Report (VSDrops) Download ❌ dotnettests tests (MacCatalyst) [attempt 2]Details
Html Report (VSDrops) Download ❌ dotnettests tests (macOS) [attempt 2]Details
Html Report (VSDrops) Download ❌ linker tests [attempt 2]Details
Html Report (VSDrops) Download ❌ monotouch tests (iOS) [attempt 2]Details
Html Report (VSDrops) Download ❌ monotouch tests (MacCatalyst) [attempt 2]Details
Html Report (VSDrops) Download ❌ monotouch tests (macOS) [attempt 2]Details
Html Report (VSDrops) Download ❌ monotouch tests (tvOS) [attempt 2]Details
Html Report (VSDrops) Download Successes✅ cecil: All 1 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
Misc CI fixes: