codeclimate / test-reporter

Code Climate Test Reporter
MIT License
156 stars 76 forks source link

Builds for Apple Silicon? #470

Open ankushg opened 3 years ago

ankushg commented 3 years ago

Hi there!

When doing an audit of the binaries on my computer to see which aren't compiled for Apple Silicon, codeclimate test reporter popped up as only having an x86_64 executable

Are there any plans for either an arm64e-specific build, or a universal binary containing an executable for both?

lmeynberg commented 2 years ago

With now have the possibility to run build jobs on ARM based machine at AWS EC2 it would be even nicer to have that ARM binary.

mrmachine commented 1 year ago

Indeed. We run GitHub Actions self-hosted runners on arm64 and x64 EC2s to build multi-arch Docker images, and would like to be able to upload coverage reports from both.

lmeynberg commented 1 year ago

ARM EC2 should work with the ARM64 variant now https://docs.codeclimate.com/docs/configuring-test-coverage#section-locations-of-pre-built-binaries

skydivedan commented 1 year ago

ARM EC2 should work with the ARM64 variant now https://docs.codeclimate.com/docs/configuring-test-coverage#section-locations-of-pre-built-binaries

I see a Linux ARM64 binary. But I don't see a Darwin ARM64 binary. CircleCI recently announced M1 support (Apple Silicon) https://circleci.com/blog/m1-mac-resource-class/. What's awesome about this is that it basically cuts build times in half. But I can't use CodeClimate, because I get this error:

/bin/bash: ./cc-test-reporter: Bad CPU type in executable. - that's because I'm running the wrong binary... the AMD64 binary for MacOS X. But I don't see that there's an alternative.

atereshkov commented 1 year ago

@skydivedan have you found a solution?

skydivedan commented 1 year ago

Well... I found a workaround. M1 machines run macOS. macOS on M1 has a layer named "Rosetta" which can run AMD64 binaries, like the current test-reporter. In my case, I'm using CircleCI, and they have the ability to activate Rosetta as a build step. Overhead in this case is very low (2s). I don't know, for each case, if you are able to do this. It's not ideal, but it does get me around the issue. In my case it's worth it as using M1 machines in CircleCI cut my build time in half (literally, and that's being conservative). YMMV. That said, it is certainly preferable to use a native version of test-reporter once it exists.

patoroco commented 1 year ago

Hi, I've arrived to here with the same issue, but I found a workaround to use the (intel) binary from the Mac, maybe it helps to someone more:

# download the amd64 version for Mac and set the execution permissions
curl -L codeclimate.com/downloads/test-reporter/test-reporter-latest-darwin-amd64 > ~/cc-test-reporter
chmod +x ~/cc-test-reporter

# change the architecture of the shell (Rosetta is needed to do this step)
arch -x86_64 zsh

# Now, you can confirm that the arch on this shell has changed with:
arch

# and you'll be able to execute the binary you've just downloaded:
~/cc-test-reporter

image

skydivedan commented 1 year ago

Wow, this was brought up nearly 2 ½ years ago... Is anyone looking at this?