Skip to content
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

Update VSIX release process to build TypeScript component on each native platform instead of all from the same host #9681

Open
Colengms opened this issue Aug 3, 2022 · 3 comments
Labels
internal Used to opt-out an issue from having GitHub actions applied to it Language Service
Milestone

Comments

@Colengms
Copy link
Collaborator

Colengms commented Aug 3, 2022

Currently, cpptools' TypeScript component does not have any platform-dependent dependencies. The Release pipeline for the cpptools VSIX builds the TypeScript component for each platform from the same (Windows) host. That prevents us from introducing any platform-dependent dependencies, as they would be built for Windows and not the actual target platform.

This is preventing us from using the following dependencies, requiring us to work around these needs with non-ideal solutions:

  • wordexp (requiring us to deploy our own cpptools-wordexp utility)
  • node-pty (requiring us to add arguments to gcc and clang build tasks to force output colorization)

This issue is tracking updating our Release pipeline to build the TypeScript component separately on each target platform.

I believe this is blocked until Azure DevOps can provide ARM64 Mac support (or we can get an ARM64 Mac added back into our pool).

@Colengms Colengms added Language Service internal Used to opt-out an issue from having GitHub actions applied to it labels Aug 3, 2022
@Colengms Colengms added this to the On Deck milestone Aug 3, 2022
@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Aug 4, 2022

What about Windows/Linux ARM and Alpine? Would we have to build on those OS's as well instead of cross-compiling?

@Colengms
Copy link
Collaborator Author

Colengms commented Aug 4, 2022

@sean-mcmanus We have the ability to build for ARM and ARM64 Linux (using Docker and processor emulation), but you may be right about needing ARM64 Windows support in the lab in addition to ARM64 Mac support.

node-gyp looks like it might provide a cross-compile solution, but I assume that would require target toolsets on the host.

@Colengms
Copy link
Collaborator Author

Colengms commented Apr 27, 2023

This could be easily addressed once Mac M1, Linux ARM64, and Windows ARM64 VMs are available for Azure Pipelines. Bugs tracking those are here:
Mac M1: actions/runner-images#2187
Linux ARM64: actions/runner-images#5631
Windows ARM64: actions/runner-images#6532 (Duplicated to itself. Trying to follow up.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal Used to opt-out an issue from having GitHub actions applied to it Language Service
Projects
None yet
Development

No branches or pull requests

2 participants