[Minor][Engg]: Pipeline Improvements#2999
Open
josephpab wants to merge 13 commits into
Open
Conversation
…, xctestrun discovery, error handling - Dynamically detect iOS simulator device and resolve UDID for unambiguous destinations - Auto-discover .xctestrun files instead of hardcoding SDK-specific paths - Add UDID-based simulator destinations across all CI pipelines - Handle xcodebuild failures with log capture and surface last 200 lines on error - Add Xcode symlink creation for consistent toolchain resolution - Derive codecov architecture from build settings instead of hardcoding - Switch broker_submodule_check to xcbeautify - Improve spm-integration-test.sh with UDID-based sim targeting Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- spm-integration-test.sh: guard python3 availability before UDID resolution, fall back to name-based destination gracefully - build.py: derive codecov architecture from built binary via lipo instead of relying on ARCHS build setting - tests-with-conf-file.yml: add set -o pipefail alongside PIPESTATUS check Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates CI/build tooling to make pipeline runs more reliable by reducing simulator destination ambiguity, standardizing Xcode selection steps, and improving diagnostic output for build/test and coverage reporting.
Changes:
- Add dynamic iOS simulator destination selection (prefer UDID) for SPM integration testing and Azure Pipelines test jobs.
- Improve pipeline robustness with
pipefail+ log capture forxcodebuild build-for-testing, and adjusttest-without-buildinginvocation to rely on workspace/scheme + derived data. - Make code coverage reporting more resilient by determining the binary architecture via
lipo.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| spm-integration-test.sh | Adds UDID-based iOS Simulator destination selection for the NativeAuth sample app build. |
| build.py | Dynamically selects an iPhone simulator destination and improves llvm-cov arch selection for code coverage. |
| azure_pipelines/visionos-validation.yml | Updates Xcode selection steps and symlinks /Applications/Xcode.app for consistency. |
| azure_pipelines/templates/tests-with-conf-file.yml | Adds simulator detection + sets SIM_DESTINATION, and improves build-for-testing log/error handling. |
| azure_pipelines/pr-validation.yml | Updates Xcode selection steps and switches iOS destination to $(SIM_DESTINATION). |
| azure_pipelines/broker_submodule_check.yml | Adjusts timeout and agent image name; removes xcpretty install steps; updates Xcode selection script style. |
| azure_pipelines/automation.yml | Switches iOS test destinations to $(SIM_DESTINATION) via the shared template. |
The system_profiler step only printed diagnostics and didn't gate anything. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
pr-validation.yml passed retry_tests as boolean (false) but the template compares with eq(parameters.retry_tests, 'true'/'false'). Align to strings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…allback warning - Fix Python IndentationError in tests-with-conf-file.yml: remove leading whitespace from python3 -c snippets (YAML script block preserves indentation) - Fix displayName 'Switch to use Xcode 26.3' → 'Select Xcode version' to match actual selected version (was leftover from version revert) - Add warning when falling back to name-based simulator destination in build.py Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Restore 8-space indentation for Python snippets in tests-with-conf-file.yml. YAML | block strips the common indent before delivering to shell, so the Python receives un-indented code. Removing the indent broke the YAML block. - Fix vmImage casing in broker_submodule_check.yml: macos-15 → macOS-15 to match the rest of the repo. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
|
@copilot review PR |
Agent-Logs-Url: https://github.com/AzureAD/microsoft-authentication-library-for-objc/sessions/b0b507a8-b477-424f-ae9d-d5efc5e35869 Co-authored-by: josephpab <175344915+josephpab@users.noreply.github.com>
Agent-Logs-Url: https://github.com/AzureAD/microsoft-authentication-library-for-objc/sessions/b0b507a8-b477-424f-ae9d-d5efc5e35869 Co-authored-by: josephpab <175344915+josephpab@users.noreply.github.com>
Agent-Logs-Url: https://github.com/AzureAD/microsoft-authentication-library-for-objc/sessions/b0b507a8-b477-424f-ae9d-d5efc5e35869 Co-authored-by: josephpab <175344915+josephpab@users.noreply.github.com>
Agent-Logs-Url: https://github.com/AzureAD/microsoft-authentication-library-for-objc/sessions/b0b507a8-b477-424f-ae9d-d5efc5e35869 Co-authored-by: josephpab <175344915+josephpab@users.noreply.github.com>
Contributor
Reviewed and applied a fix for the simulator selection path: updated |
Convert xcresult to JUnit XML via xcresulttool, then publish with PublishTestResults@2 so results appear in the ADO Test tab. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Echo xcresulttool summary to stdout so developers can see test failures directly in the ADO log without downloading artifacts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Checklist (must be completed before review)
Proposed changes
Modernizes the MSAL CI/CD pipeline infrastructure for improved reliability, maintainability, and observability.
Key improvements:
Build tooling
build.py,spm-integration-test.sh, andtests-with-conf-file.ymlto eliminate ambiguity when multiple iOS runtimes are installedxcode-select+ symlink creation across all pipelineslipo -archsinstead of brittleARCHSbuild settingbroker_submodule_check.ymlfrom xcpretty to xcbeautifyCI observability
xcresulttool get test-results summaryechoed directly to pipeline log — no more downloading artifacts to see what failed.xcresultto JUnit XML viaxcresulttool, then publish withPublishTestResults@2so results appear in ADO Test tabset -o pipefail+PIPESTATUScapture with last-200-lines log tail on failureCleanup & reliability
automation.ymlretry_testsparameter type mismatch (boolean → string), vmImage casing (macos-15→macOS-15)spm-integration-test.shwith graceful name-based fallbackbuild.pywhen using name-based simulator destinationType of change
Risk
Additional information
This PR only modifies CI pipeline YAML files,
build.py,spm-integration-test.sh, andCHANGELOG.md. No runtime SDK code is changed.