Skip to content

Fix ImageBuilder Test Images after Arcade toolset layout change #2104

@lbussell

Description

@lbussell

The docker-tools-imagebuilder-official pipeline is failing in Test Images after the Arcade update in #2099.

Failure from build 2972132: https://dev.azure.com/dnceng/internal/_build/results?buildId=2972132

src/run-tests.ps1 still reads the legacy Arcade toolset marker file directly:

# Install additional runtimes from global.json. InitializeToolset resolves the Arcade
# SDK but doesn't trigger restore. Build.proj delegates to Tools.proj for restore, which
# imports InstallDotNetCore.targets to install additional runtimes from global.json.
$globalJson = Get-Content (Join-Path $repoRoot 'global.json') | ConvertFrom-Json
$arcadeSdkVersion = $globalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk'
# Need to use nested Join-Path calls to support Windows PowerShell, which doesn't support multiple paths in a single Join-Path call
$toolsetLocationFile = Join-Path (Join-Path (Join-Path $repoRoot 'artifacts') 'toolset') "$arcadeSdkVersion.txt"
$buildProj = Get-Content $toolsetLocationFile -TotalCount 1

Get-Content: /repo/src/run-tests.ps1:42
Cannot find path '/repo/artifacts/toolset/11.0.0-beta.26230.2.txt' because it does not exist.

#2099 updated Arcade to 11.0.0-beta.26230.2, including a toolset restore layout change that no longer writes artifacts/toolset/<version>.txt. This means pre-build validation fails before ImageBuilder tests run.

We should update the ImageBuilder test script to resolve the Arcade toolset through the current restore layout instead of assuming the legacy .txt marker file exists.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions