[x] This feature is important to have in this repository; a contrib plugin wouldn't do
Describe the user story
As a developer I'm using a darwin arm64 machine and my CI/CD runs on win32/linux/darwin x64.
The current supportedArchitectures matrix leads me to install windows arm64 and linux arm64 versions of esbuild, which are never actually used.
Describe the solution you'd like
I'd like the supportedArchitectures matrix to have include and/or exclude functionality, similar to how matrices work in GitHub workflows.
The default value for os and cpu could lead to confusion. For example:
supportedArchitectures:
include:
- os: darwin
cpu: arm64
- os: darwin
cpu: x64
- os: linux
cpu: x64
Does the resulting matrix contain os = current && cpu = current as well?
The way it's currently implemented says yes, I'd have to explicitly pass empty arrays into the os and cpu options to disable that.
Describe alternatives you've considered
Use the matrix functionality as is and store a couple of useless extra megabytes in the repo.
Use the matrix functionality as is and only include the x64 architecture. This allows the arm64 variant to stay as a ghost in the cache. While not immediately a cause for concern, this does make updating esbuild more of a hassle than it should be.
Switch back to the platform-independent esbuild-wasm, though it's triggering some very weird and annoying shell bugs (https://twitter.com/bram_gotink/status/1462161669614931976).
This would be fine for now, but as esbuild has been integrated with the angular build tooling and the hardware provider of my angular-loving employer is running out of intel macs fast, it's a matter of time until this workaround becomes unmaintainable.
Describe the user story
As a developer I'm using a darwin arm64 machine and my CI/CD runs on win32/linux/darwin x64. The current
supportedArchitectures
matrix leads me to install windows arm64 and linux arm64 versions of esbuild, which are never actually used.Describe the solution you'd like
I'd like the
supportedArchitectures
matrix to haveinclude
and/orexclude
functionality, similar to how matrices work in GitHub workflows.In my example scenario that could look like this:
Describe the drawbacks of your solution
The default value for
os
andcpu
could lead to confusion. For example:Does the resulting matrix contain
os = current && cpu = current
as well? The way it's currently implemented says yes, I'd have to explicitly pass empty arrays into theos
andcpu
options to disable that.Describe alternatives you've considered
esbuild-wasm
, though it's triggering some very weird and annoying shell bugs (https://twitter.com/bram_gotink/status/1462161669614931976). This would be fine for now, but as esbuild has been integrated with the angular build tooling and the hardware provider of my angular-loving employer is running out of intel macs fast, it's a matter of time until this workaround becomes unmaintainable.