-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -132,6 +132,17 @@ jobs: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BuildConfig: $(buildConfiguration) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OPENSSL_ENABLE_SHA1_SIGNATURES: 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ############### PUBLISH SDK ARTIFACTS ############### | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Publishes the built SDK installer artifacts (zip, tar.gz, pkg, exe, msi, deb, rpm) to pipeline artifacts. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # This enables validation and troubleshooting, particularly for PRs where local build output isn't available. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - task: ${{ parameters.oneESCompat.publishTaskPrefix }}PublishPipelineArtifact@1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| displayName: 🟣 Publish SDK Artifacts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| targetPath: $(Build.SourcesDirectory)/artifacts/packages/$(buildConfiguration)/Shipping | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| artifactName: $(System.PhaseName)_SDK | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| continueOnError: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| condition: succeededOrFailed() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So, this will double publish. Meaning, adding this here will cause all builds to publish these assets. Internal builds already publish these assets via the Lines 291 to 306 in 2b7468d
Wait, reading this, we moved to
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Assetless-build PR for reference: #49113
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Yes, sdk shouldn't publish anything in the official assetless build.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, OneLocBuild should still run in individual repo's builds. Compliance/SDL now runs centrally in the VMR and there's an owner to transfers items to the individual teams. Regarding shipping, no - sdk shouldn't ship any artifacts. I'm pretty sure it doesn't ship anything today as isAssetlessBuild is set to true which skips all that.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Unless the VMR copies a repo's pipeline configuration for SDL/Compliance, I would not trust SDL tool runs from the VMR as they're likely misconfigured. For example, BinSkim requires these glob filters to run properly on this repo: sdk/eng/pipelines/templates/jobs/sdk-build.yml Lines 60 to 63 in 6085c30
Other repos would have specific files for filters or other logic in specific files within the repo that would be declared in the Lines 73 to 87 in 6085c30
@RikkiGibson You're still shipping the source package you added as part of our official build pipeline, right?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The source package should also be produced from the VMR and should be shipped from there. Likely there's no material difference, but the VMR is the source of truth
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The VMR is correctly configured. We have an active stream of binskim / CG issues. We are in close contact with the compliance folks in Prague an Redmond and are using a preview feature that does operate on nuget packages and archives instead which makes the above glob unnecessary. @marcpopMSFT knows about all this.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @MiYanni Binkskim in the VMR scans the output artifacts that are uploaded, rather than the. It utilizes binskim's newer functionality to unpack archives. I don't think it needs to be run in the SDK build any longer. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ############### TESTING ############### | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - ${{ if eq(parameters.runTests, true) }}: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - ${{ if eq(parameters.runAoTTests, true) }}: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.