Skip to content

Conversation

@rishabhmalikMS
Copy link
Contributor

@rishabhmalikMS rishabhmalikMS commented Jan 28, 2026

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 NodeVersionOrchestrator container 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:

  • Cross-platform testing for Windows (mcr.microsoft.com/windows/servercore:ltsc2025) and Linux (alpine:latest) containers
  • Environment variable validation testing AZP_AGENT_USE_NODE24_TO_START_CONTAINER, AZP_AGENT_USE_NODE20_TO_START_CONTAINER, and strategy mode controls
  • Comprehensive log pattern validation with documented patterns from NodeVersionOrchestrator.cs and ContainerOperationProvider.cs
  • Platform-specific test traits ensuring tests run only on supported platforms

Risk Assessment (Low / Medium / High)

Low**

Justification:

  • These are test-only changes with no impact on production agent behavior
  • No changes to existing production code paths or agent logic

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

  • Design has been written and reviewed.
  • Any architectural decisions, trade-offs, and alternatives are captured.

Documentation Changes Required (Yes/No)

Indicate whether related documentation needs to be updated.

  • User guides, API specs, system diagrams, or runbooks are updated.

Logging Added/Updated (Yes/No)

  • Appropriate log statements are added with meaningful messages.
  • Logging does not expose sensitive data.
  • Log levels are used correctly (e.g., info, warn, error).

Telemetry Added/Updated (Yes/No)

  • Custom telemetry (e.g., counters, timers, error tracking) is added as needed.
  • Events are tagged with proper metadata for filtering and analysis.
  • Telemetry is validated in staging or test environments.

Rollback Scenario and Process (Yes/No)

  • Rollback plan is documented.

Dependency Impact Assessed and Regression Tested (Yes/No)

  • All impacted internal modules, APIs, services, and third-party libraries are analyzed.
  • Results are reviewed and confirmed to not break existing functionality.

@rishabhmalikMS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@rishabhmalikMS rishabhmalikMS changed the title Users/rishabhmalik ms/container l1tests Add Container Node Selection L1 Tests Jan 28, 2026
@rishabhmalikMS rishabhmalikMS marked this pull request as ready for review January 28, 2026 05:17
@rishabhmalikMS rishabhmalikMS requested review from a team as code owners January 28, 2026 05:17
@rishabhmalikMS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants