microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.52k stars 1.55k forks source link

Provide access to native binaries for CI testing #8691

Open Colengms opened 2 years ago

Colengms commented 2 years ago

With the move to platform-specific VSIX's via the marketplace, it's no longer necessary to publish the native binaries as they are no longer downloaded by the extension when first activated. Unfortunately, this also means our CI testing on GitHub no longer has access to those native binaries. Language server integration tests are currently disabled. Opening this issue to track finding an alternative way to provide native binaries that are aligned with the latest version of the code in GitHub, for CI testing.

benmcmorran commented 2 years ago

@microsoft/embedded-dev is also interested in whatever approach you come up with to share these files. It's currently impacting our automated testing, but for now we have an easy workaround by pinning to 1.8.1.

EricHripko commented 2 years ago

We found published .vsix really useful to pre-download the extension in the container image (for Remote - Containers) instead of having the containers do it on activation. It would be great if this functionality was recovered 🙂

sean-mcmanus commented 2 years ago

@EricHripko Are you able to just get the .vsix from the marketplace (https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)? If necessary, it seems like you could also self-host that somewhere. The only thing we stopped doing is uploading the vsix's on our Releases page (to minimize our manual release process steps).

image

Colengms commented 2 years ago

Note that this issue is tracking providing internal builds of cpptools.exe and cpptools-srv.exe for automated CI tests of this repo specifically. We often need to make corresponding changes in both the native and TypeScript components. We need a way to acquire the matching native binaries under development to enable testing of the TypeScript component under development. This issue should only impact internal development of the C/C++ extension.

Users who want to clone the repo should use the release or insiders branch and can acquire native binaries from the corresponding published VSIX. Documentation on how to do this was recently updated here. (Thanks to @hamirmahal for updating that document.)

EricHripko commented 2 years ago

Ah sorry for my misinterpretation of this issue @Colengms. I'm happy to submit a new issue if that's desired.

@sean-mcmanus I seem to be able to download the VSIX from https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-vscode/vsextensions/cpptools/<version>/vspackage?targetPlatform=linux-x64 provided I know what the latest version is already. With GitHub, I was able to do https://github.com/microsoft/vscode-cpptools/releases/latest/download/cpptools-linux.vsix. Is there a way to do a similar thing with VSC Marketplace as well?

sean-mcmanus commented 2 years ago

@EricHripko Were you interested in the latest Pre-Release/Insiders (i.e. 1.9.1) or the latest Release (i.e. 1.8.4)?

EricHripko commented 2 years ago

@sean-mcmanus the latter (latest stable release).

sean-mcmanus commented 2 years ago

We post a page for the latest stable release as https://github.com/microsoft/vscode-cpptools/releases/latest , which currently resolves into https://github.com/microsoft/vscode-cpptools/releases/tag/1.8.4 , even though it doesn't have any vsix attachments. Are you able to query that to get the latest 1.8.4 version to use in the marketplace URLs?