Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/sdkPublic

Publish SDK installer artifacts in CI pipeline#52233

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
Copilot wants to merge4 commits intomain
base:main
Choose a base branch
Loading
fromcopilot/publish-sdk-artifact-ci-pipeline

Conversation

Copy link
Contributor

CopilotAI commentedDec 17, 2025
edited
Loading

  • Understand the repository structure and CI pipeline
  • Identify where SDK zip/tarball files are created during build
  • Add a step to publish SDK artifacts as pipeline artifacts in sdk-build.yml
  • Add descriptive comments explaining what artifacts are published
  • Verify the YAML syntax and structure
  • Review that the solution is minimal and follows existing patterns
  • Run security scan with CodeQL
  • Final validation
  • Address PR feedback: Include retry number in artifact name

Summary

This PR successfully adds SDK artifact publishing to the CI pipeline. The implementation:

✅ Publishes SDK installer artifacts (zip/tar.gz/pkg/exe/msi/deb/rpm) from all build jobs
✅ Artifacts are named{JobName}_SDK_Attempt{N} for easy identification and to avoid collisions on retries
✅ UsescontinueOnError: true to prevent failures from breaking builds
✅ UsessucceededOrFailed() condition to publish artifacts even if build partially fails
✅ Follows existing patterns and conventions in the codebase (matches Arcade's retry naming pattern)
✅ Minimal change - only 11 lines added to one file
✅ Well-documented with clear comments

The artifacts will be available under the "Artifacts" section in Azure Pipelines after each job completes, making it easy to download and validate the built SDK for troubleshooting and testing purposes.

Original prompt

This section details on the original issue you should resolve

<issue_title>Publish built SDK zip/tarball as pipeline artifact in CI pipeline</issue_title>
<issue_description>It would be very helpful for validation/troubleshooting purposes to have access to the SDK that was built by the CI pipeline. This is particularly relevant in PRs created by Copilot since there is no dev that has built locally that has access to the build output.</issue_description>

Comments on the Issue (you are@copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn moreCopilot coding agent tips in the docs.

CopilotAIand others added2 commitsDecember 17, 2025 17:12
Co-authored-by: mthalman <15789599+mthalman@users.noreply.github.com>
Co-authored-by: mthalman <15789599+mthalman@users.noreply.github.com>
CopilotAI changed the title[WIP] Publish built SDK zip/tarball as pipeline artifactPublish SDK installer artifacts in CI pipelineDec 17, 2025
CopilotAI requested a review frommthalmanDecember 17, 2025 17:16
Co-authored-by: mthalman <15789599+mthalman@users.noreply.github.com>
@mthalmanmthalman marked this pull request as ready for reviewDecember 17, 2025 18:39
CopilotAI review requested due to automatic review settingsDecember 17, 2025 18:39
Copy link
Contributor

CopilotAI 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

This PR adds SDK installer artifact publishing to the CI pipeline to enable validation and troubleshooting, particularly for Copilot-generated PRs where developers don't have local build output. The change follows repository conventions for minimal, clean modifications and matches existing Arcade patterns.

Key Changes

  • Adds a PublishPipelineArtifact task after the build step to publish SDK installer artifacts
  • Uses retry-safe naming withSystem.JobAttempt to prevent artifact collisions
  • Includes error handling withcontinueOnError: true andsucceededOrFailed() condition

artifactName:$(System.PhaseName)_SDK_Attempt$(System.JobAttempt)
continueOnError:true
condition:succeededOrFailed()

Copy link
Member

Choose a reason for hiding this comment

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

So, this will double publish. Meaning, adding this here will causeall builds to publish these assets. Internal builds already publish these assets via theenablePublishBuildAssets and the publish-build-assets.yml template:

sdk/.vsts-ci.yml

Lines 291 to 306 in2b7468d

############### PUBLISH STAGE ###############
-${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
-stage:publish
displayName:Publish
dependsOn:[]
jobs:
-template:/eng/common/templates-official/job/publish-build-assets.yml@self
parameters:
publishUsingPipelines:true
publishAssetsImmediately:true
isAssetlessBuild:true
repositoryAlias:self
pool:
name:$(DncEngInternalBuildPool)
image:1es-windows-2022
os:windows

Wait, reading this, we moved toisAssetlessBuild.@ViktorHofer Does the internal build publish assets? Because adding this will now publish assets and I believed our goal was to no longer publish assets.

Copy link
Member

Choose a reason for hiding this comment

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

Assetless-build PR for reference:#49113

Copy link
Member

@MiYanniMiYanniDec 17, 2025
edited
Loading

Choose a reason for hiding this comment

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

Also wondering if we can just use the Arcade mechanism to publish assets instead of doing it ourselves. Meaning, use the publish-build-assets.yml template instead in the.vsts-pr.yml pipeline directly. Then, it would only happen in external PR builds.

Copy link
Member

Choose a reason for hiding this comment

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

Wait, reading this, we moved to isAssetlessBuild.@ViktorHofer Does the internal build publish assets? Because adding this will now publish assets and I believed our goal was to no longer publish assets.

Yes, sdk shouldn't publish anything in the official assetless build.

Copy link
Member

Choose a reason for hiding this comment

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

Btw, I see that sdk still builds in the official build. I think that was necessary back a few months ago when we didn't preserve intermediates for compliance scanning tools but that got solved meanwhile. Most/all? other repos that enabled assetless builds don't build anymore.

https://dev.azure.com/dnceng/internal/_build/results?buildId=2863248&view=results

@mmitche do you remember if that was indeed the reason when you made the switch?

Copy link
Member

Choose a reason for hiding this comment

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

IIRC it was a desire to still have rolling artifacts produced

MichaelSimons reacted with thumbs up emoji
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@ViktorHoferViktorHoferViktorHofer left review comments

@mmitchemmitchemmitche left review comments

@MiYanniMiYanniMiYanni left review comments

Copilot code reviewCopilotCopilot left review comments

@baronfelbaronfelAwaiting requested review from baronfel

@MichaelSimonsMichaelSimonsAwaiting requested review from MichaelSimons

+1 more reviewer

@mthalmanmthalmanmthalman approved these changes

Reviewers whose approvals may not affect merge requirements

At least 1 approving review is required to merge this pull request.

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Publish built SDK binaries as pipeline artifacts in CI pipeline

5 participants

@ViktorHofer@mmitche@mthalman@MiYanni

[8]ページ先頭

©2009-2025 Movatter.jp