Skip to content

ci: use 1ES pipelineArtifact output in ext-azure-ai-agents-live#8998

Open
vhvb1989 wants to merge 3 commits into
mainfrom
fix/1es-pipeline-artifact-ai-agents-live
Open

ci: use 1ES pipelineArtifact output in ext-azure-ai-agents-live#8998
vhvb1989 wants to merge 3 commits into
mainfrom
fix/1es-pipeline-artifact-ai-agents-live

Conversation

@vhvb1989

@vhvb1989 vhvb1989 commented Jul 6, 2026

Copy link
Copy Markdown
Member

Fixes #9004

Problem

Running the ext-azure-ai-agents-live pipeline fails at template expansion:

/v1/Steps/UserProvidedBuildSteps.yml@1ESPipelineTemplates (Line: 89, Col: 7): Unexpected value 'PublishPipelineArtifact@1 task is not allowed. Please use `output: pipelineArtifact` instead. See https://aka.ms/1espt/outputs for more details'

Cause

eng/pipelines/ext-azure-ai-agents-live.yml extends 1es-redirect.yml, so it runs through the 1ES pipeline template, which forbids calling PublishPipelineArtifact@1 as a plain task: step. 1ES requires artifacts to be declared as job-level outputs via templateContext.outputs using output: pipelineArtifact (the same pattern already used by every other 1ES pipeline in the repo, e.g. eng/pipelines/templates/jobs/build-cli.yml).

Fix

Move the test-log publish out of steps: and into a templateContext.outputs block on the Tier2 job. condition is still supported, so always() continues to publish logs even when the live run fails. Key mappings: targetPathpath, artifactNameartifact.

No behavior change beyond compliance — logs are published to the same artifact name.

The 1ES pipeline template (via 1es-redirect.yml) forbids the raw
PublishPipelineArtifact@1 task and requires artifacts to be declared as
job-level outputs using `output: pipelineArtifact`. Move the test-log
publish into templateContext.outputs, preserving the always() condition.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the ext-azure-ai-agents-live Azure DevOps pipeline to comply with 1ES pipeline template rules by declaring the test-log artifact as a job-level pipelineArtifact output instead of using a raw PublishPipelineArtifact@1 step.

Changes:

  • Adds templateContext.outputs on the Tier2 job to publish $(Build.ArtifactStagingDirectory) as a pipelineArtifact with condition: always().
  • Removes the forbidden PublishPipelineArtifact@1 task from the job steps:.

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

📋 Prioritization Note

Thanks for the contribution! The linked issue isn't in the current milestone yet.
Thank you for logging this issue; our team is reviewing it. If you need urgent prioritization, tag @RickWinter and @kristenwomack to let us know.

Comment thread eng/pipelines/ext-azure-ai-agents-live.yml Outdated

@danieljurek danieljurek left a comment

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.

Builds won't succeed on retry with the current naming convention, but this will function as written

…lisions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@jongio jongio left a comment

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.

Re-approving after the JobAttempt fix. The $(System.JobAttempt) suffix correctly prevents artifact name collisions across job re-runs within the same build.

@RickWinter RickWinter left a comment

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.

This moves the tier2 live-log publish out of a raw PublishPipelineArtifact@1 step and into a job-level templateContext.outputs block so the pipeline passes 1ES template validation. The approach is correct and matches the pattern the other 1ES pipelines in the repo already use. condition: always() is preserved, so failure-path log publishing is retained, and targetPath/artifactName map cleanly to path/artifact.

The one behavior delta is the artifact name gaining $(System.JobAttempt), which is an improvement (re-running a failed job no longer collides on the artifact name), not a regression. No blockers. Disposition: COMMENT.

Comment thread eng/pipelines/ext-azure-ai-agents-live.yml
@github-actions github-actions Bot added the ext-agents azure.ai.agents extension label Jul 8, 2026

@jongio jongio left a comment

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.

Test infrastructure updates look solid. The switch from string matching to proper YAML struct parsing in hasProjectManifest is the right call for handling the unified azure.yaml format. initOutputDiagnostics is well-bounded (80 entries, depth 3) for CI log clarity.

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

Labels

ext-agents azure.ai.agents extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ext-azure-ai-agents-live pipeline fails: PublishPipelineArtifact@1 not allowed under 1ES template

6 participants