Skip to content

Skip log publish for WinGet/Homebrew installer jobs#16865

Merged
radical merged 1 commit into
microsoft:mainfrom
radical:ankj/fix-installer-publish-logs
May 8, 2026
Merged

Skip log publish for WinGet/Homebrew installer jobs#16865
radical merged 1 commit into
microsoft:mainfrom
radical:ankj/fix-installer-publish-logs

Conversation

@radical
Copy link
Copy Markdown
Member

@radical radical commented May 7, 2026

Summary

Fixes the Prepare Installers stage failure in the internal pipeline (e.g. dnceng/internal build 2969660) where the WinGet and Homebrew jobs fail at log-publish time.

Why it fails today

The WinGet and Homebrew jobs in azure-pipelines.yml and azure-pipelines-unofficial.yml go through Arcade's eng/common/templates-official/jobs/jobs.yml with enablePublishBuildArtifacts: true.

That setting (in eng/common/templates-official/job/job.yml) injects a 1ES pipelineArtifact output:

- output: pipelineArtifact
  displayName: Publish Logs
  targetPath: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)'

But these jobs never run ./build.sh — they only checkout + DownloadPipelineArtifact + run the WinGet manifest / Homebrew cask packaging template against previously-built CLI archives. So artifacts/log/Release/ is never created, and 1ES path validation on the publish output fails the job. continueOnError on the upstream CopyFiles step doesn't save us because the failing step is the 1ES pipelineArtifact output itself.

Fix

Set enablePublishBuildArtifacts: false on the installer-stage jobs.yml invocation in both pipelines. There are no build logs to publish from these jobs. enableTelemetry: true is preserved (that flag controls dotnet CLI telemetry env vars, not log publishing).

Verification

  • ./restore.sh and ./build.sh are not affected — this only changes pipeline YAML for the WinGet/Homebrew packaging stage.
  • The change applies to both the internal (azure-pipelines.yml) and unofficial (azure-pipelines-unofficial.yml) pipelines, since both define identical WinGet/Homebrew jobs that hit the same template path.
  • The native build/sign jobs in build_sign_native.yml keep enablePublishBuildArtifacts: true because they do run a build and produce logs.

These jobs only download already-built CLI archives and prepare
WinGet manifests / Homebrew casks; they never run the repo build,
so artifacts/log/$(_BuildConfig) is never produced. With
enablePublishBuildArtifacts: true, the Arcade 1ES job template
injects a Publish Logs pipelineArtifact output whose targetPath
points at that empty/missing directory. 1ES path validation on
that output fails the job (continueOnError on the CopyFiles step
doesn't help because the failure is on the 1ES publish output
itself).

Set enablePublishBuildArtifacts: false on the WinGet/Homebrew
installer stage in both the internal (azure-pipelines.yml) and
unofficial (azure-pipelines-unofficial.yml) pipelines. There are
no build logs to publish from these jobs.

This fixes the Prepare Installers stage failures in the internal
pipeline (e.g. dnceng/internal build 2969660).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 16865

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 16865"

@radical radical marked this pull request as ready for review May 7, 2026 23:56
Copilot AI review requested due to automatic review settings May 7, 2026 23:56
@radical radical requested review from joperezr and sebastienros May 7, 2026 23:57
@radical
Copy link
Copy Markdown
Member Author

radical commented May 7, 2026

@radical radical enabled auto-merge (squash) May 7, 2026 23:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Disables Arcade/1ES build-log artifact publishing for the prepare_installers stage jobs (WinGet + Homebrew) in both official and unofficial Azure Pipelines, preventing failures caused by the log artifact directory not being created in jobs that only consume previously-built archives.

Changes:

  • Set enablePublishBuildArtifacts: false for the prepare_installers stage jobs.yml template invocation in the official pipeline.
  • Set enablePublishBuildArtifacts: false for the same stage in the unofficial pipeline.
  • Added inline YAML comments documenting why log publishing must be disabled for these jobs.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
eng/pipelines/azure-pipelines.yml Disables build-log artifact publishing for WinGet/Homebrew packaging jobs that don’t produce artifacts/log/....
eng/pipelines/azure-pipelines-unofficial.yml Applies the same log-publish disablement to the unofficial pipeline’s installer-prep stage.

@radical radical merged commit 910635d into microsoft:main May 8, 2026
7 checks passed
@github-actions github-actions Bot added this to the 13.4 milestone May 8, 2026
@radical radical deleted the ankj/fix-installer-publish-logs branch May 8, 2026 02:18
@radical
Copy link
Copy Markdown
Member Author

radical commented May 15, 2026

/backport to release/13.3

@github-actions
Copy link
Copy Markdown
Contributor

Started backporting to release/13.3 (link to workflow run)

nellshamrell pushed a commit to nellshamrell/aspire that referenced this pull request May 18, 2026
These jobs only download already-built CLI archives and prepare
WinGet manifests / Homebrew casks; they never run the repo build,
so artifacts/log/$(_BuildConfig) is never produced. With
enablePublishBuildArtifacts: true, the Arcade 1ES job template
injects a Publish Logs pipelineArtifact output whose targetPath
points at that empty/missing directory. 1ES path validation on
that output fails the job (continueOnError on the CopyFiles step
doesn't help because the failure is on the 1ES publish output
itself).

Set enablePublishBuildArtifacts: false on the WinGet/Homebrew
installer stage in both the internal (azure-pipelines.yml) and
unofficial (azure-pipelines-unofficial.yml) pipelines. There are
no build logs to publish from these jobs.

This fixes the Prepare Installers stage failures in the internal
pipeline (e.g. dnceng/internal build 2969660).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

3 participants