Add Container Node Selection L1 Tests #5459
Open
+353
−0
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.
Context
This PR addresses the need for comprehensive integration testing of container-based Node.js version selection in Azure Pipelines Agent. The motivation stems from investigating hanging OneBranch pipeline issues and ensuring robust container node selection behavior across platforms. These tests validate the
NodeVersionOrchestratorcontainer selection logic with real containers.AB#2348224
Description
Introduces
NodeSelectionContainerL1Tests.cs- a comprehensive L1 integration test suite for container-based Node.js version selection featuring:mcr.microsoft.com/windows/servercore:ltsc2025) and Linux (alpine:latest) containersAZP_AGENT_USE_NODE24_TO_START_CONTAINER,AZP_AGENT_USE_NODE20_TO_START_CONTAINER, and strategy mode controlsNodeVersionOrchestrator.csandContainerOperationProvider.csRisk Assessment (Low / Medium / High)
Low**
Justification:
Unit Tests Added or Updated (Yes / No)
Yes - This PR adds comprehensive L1 tests. L0 tests are already present.
Additional Testing Performed
List manual or automated tests performed beyond unit tests (e.g., integration, scenario, regression).
Change Behind Feature Flag (Yes / No)
No - These are L1 tests that validate existing functionality. Feature flags are not applicable to test code, and the tests themselves validate feature flag behavior (strategy vs legacy modes).
Tech Design / Approach
Documentation Changes Required (Yes/No)
Indicate whether related documentation needs to be updated.
Logging Added/Updated (Yes/No)
Telemetry Added/Updated (Yes/No)
Rollback Scenario and Process (Yes/No)
Dependency Impact Assessed and Regression Tested (Yes/No)