-
Couldn't load subscription status.
- Fork 713
Set up extension build and sign pipeline #11504
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
Set up extension build and sign pipeline #11504
Conversation
This reverts commit 8006a85.
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 11504Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 11504" |
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.
Pull Request Overview
This PR sets up a CI/CD pipeline for building, signing, and publishing the VS Code extension. The changes introduce a new pipeline stage that handles the complete extension build process including dependency installation, localization, packaging, and code signing.
Key changes:
- Adds a new "build_sign_extension" stage to the Azure DevOps pipeline that runs before the native build stage
- Creates a comprehensive build template for the VS Code extension with Node.js setup, dependency management, and VSIX packaging
- Configures code signing for .vsix files using the VsixSHA2 certificate
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| eng/pipelines/azure-pipelines.yml | Adds new pipeline stage for extension build and sign process |
| eng/pipelines/templates/BuildExtension.yml | Complete build template with Node.js setup, yarn operations, VSIX packaging, and signing |
| eng/Signing.props | Configures .vsix file signing with VsixSHA2 certificate and includes extension artifacts in signing targets |
| extension/loc/.gitignore | Removes gitignore entry for xliff directory |
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.
This is looking good. Just have some feedback.
… extension on the internal pipeline
…y use the exit code to determine success or failure
| <ExtensionSrcDir>$(MSBuildThisFileDirectory)</ExtensionSrcDir> | ||
| </PropertyGroup> | ||
|
|
||
| <Target Name="BuildAndPackageExtension" BeforeTargets="Build" DependsOnTargets="CheckYarnInstalled;CheckVsceInstalled"> |
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.
For future PRs it would be useful to add Inputs/Outputs to the targets, so this can be skipped on incremental builds. It would be useful if you are doing it locally.
This reverts commit e178308.
* first try extension CI * move above other stages * install vsce globally before package * explicitly publish extension * try add signing * try #2 * Revert "try #2" This reverts commit 8006a85. * try to fix sign * try with artifacts packages dir property * remove verification * clean up * pr suggestions * run stages in parallel * see if this runs in parallel * add restore back * rename binlog * remove extra upload step * Move building extension to msbuild from the scripts. And always build extension on the internal pipeline * fix typo * fix build * Don't try to parse errors and warnings from yarn/npm invocations. Only use the exit code to determine success or failure * try publishing vsix * update paths * update paths 2 * Revert "update paths 2" This reverts commit e178308. * fix path to publish..? --------- Co-authored-by: Ankit Jain <radical@gmail.com>
…1618) * Initial plan * Set up extension build and sign pipeline (#11504) * first try extension CI * move above other stages * install vsce globally before package * explicitly publish extension * try add signing * try #2 * Revert "try #2" This reverts commit 8006a85. * try to fix sign * try with artifacts packages dir property * remove verification * clean up * pr suggestions * run stages in parallel * see if this runs in parallel * add restore back * rename binlog * remove extra upload step * Move building extension to msbuild from the scripts. And always build extension on the internal pipeline * fix typo * fix build * Don't try to parse errors and warnings from yarn/npm invocations. Only use the exit code to determine success or failure * try publishing vsix * update paths * update paths 2 * Revert "update paths 2" This reverts commit e178308. * fix path to publish..? --------- Co-authored-by: Ankit Jain <radical@gmail.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Adam Ratzman <adam@adamratzman.com> Co-authored-by: Ankit Jain <radical@gmail.com>
| /p:Sign=$sign ` | ||
| /p:Publish=$publish ` | ||
| /p:RestoreStaticGraphEnableBinaryLogger=$binaryLog ` | ||
| /p:BuildExtension=$buildExtension ` |
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.
This file (and build.sh) shouldn't have been changed for this, as we shouldn't touch files under eng\common. Those get overwritten by arcade each time we update, so this shouldn't be modified, and instead we should change the files under eng\build.ps1/sh. Last night we took an arcade update which broke the build as these scripts where replaced.
cc: @adamint @radical
Fyi: @davidfowl who was asking about this.
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.
I fixed that up in the update-arcade Pr.
Description
Adds a new stage that builds, signs, and publishes the extension vsix.
@radical
Checklist
<remarks />and<code />elements on your triple slash comments?doc-ideatemplatebreaking-changetemplatediagnostictemplate