Skip to content

Simplify publishing output paths - #2208

Open
lbussell wants to merge 39 commits into
mainfrom
lbussell/simplify-publish-output-paths
Open

Simplify publishing output paths#2208
lbussell wants to merge 39 commits into
mainfrom
lbussell/simplify-publish-output-paths

Conversation

@lbussell

@lbussell lbussell commented Aug 7, 2026

Copy link
Copy Markdown
Member

The pipeline artifacts from the publish stage aren't consumed anywhere (that I could find). Yet, we upload them in three separate publish artifact tasks. That's a waste of time.

  • All commands use BuildConfiguration.ArtifactStagingDirectory for build artifact publishing and consumption. All input/output paths are relative to this directory. This is through a new abstraction, ArtifactService.
  • Publishes all artifacts just one time at the very end of the publish stage.

lbussell and others added 30 commits August 7, 2026 10:59
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Keep current shared templates on the published ImageBuilder contract while bundling the relative output paths with the next ImageBuilder release.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c0f6c174-1904-42d2-8829-bc3cd05e05d0
@lbussell
lbussell marked this pull request as ready for review August 7, 2026 20:44
@lbussell
lbussell requested a review from a team as a code owner August 7, 2026 20:44
{
if (string.IsNullOrWhiteSpace(_buildConfig.ArtifactStagingDirectory))
{
throw new InvalidOperationException(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any call to ResolvePath will fail in the context of a PR build because generate-appsettings.yml skips outputting an appsettings.json file for PRs:

condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), ${{ parameters.condition }})

So no ArtifactStagingDirectory value will be set, causing this exception to throw.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants