-
Notifications
You must be signed in to change notification settings - Fork 389
Utilize a separate pipeline for release tasks #2515
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?
Utilize a separate pipeline for release tasks #2515
Conversation
need to link official build ci and understand logic from vscode-csharp
Removes the actual publish step to prevent accidentally publishing for now
the 'signed' package is already created and overrides the unsigned one.
default test to true so we dont accidentally ship
| parameters: | ||
| - name: test | ||
| type: boolean | ||
| default: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: For consistency, keep list elements, - {prop}, aligned with the parent property. Thus,
| parameters: | |
| - name: test | |
| type: boolean | |
| default: true | |
| parameters: | |
| - name: test | |
| type: boolean | |
| default: true |
You did this with variables: and repositories: and other stuff below. It still works if it is indented extra, but it just adds to confusion about YAML if they're all not the same.
| steps: | ||
| - template: pipeline-templates/install-node.yaml@self | ||
| - template: pipeline-templates/list-file-structure.yaml@self | ||
| - bash: | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bash: is a shorthand for this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/bash-v3?view=azure-pipelines
Any reason this script needs to be bash on Windows? It then requires the script to run under WSL. Copilot could probably directly convert this to PowerShell pretty easily. Then, this entire job just uses PowerShell.
Succeeds #2411
To migrate to a standardized deployment approach, we'd like to move away from the legacy Azure DevOps release mechanisms. The best way I've seen to do that is to have a separate release pipeline which handles only release activities - the release pipeline must be quite restricted which causes issues even trying to run our security scanners and compliance tools such as SBOM, so trying to create a deployment off our existing pipeline served challenging.
This approach is based off of the vscode-csharp release pipeline. https://github.com/dotnet/vscode-csharp/blob/main/azure-pipelines/release.yml
An example run is here: https://dev.azure.com/dnceng/internal/_build/results?buildId=2858298&view=results
Other updates to make this work:
npm ciinstall of vsce. This is because we are blocked from installing updates in a ci machine so it would fail anytime a package sub dependency got an update (which happens nearly daily)Thank you to @/joerobich who was very helpful in explaining the vscode-csharp-release structure.