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

Support Linux ARM64 build images #5631

Open
2 of 10 tasks
robd003 opened this issue May 28, 2022 · 38 comments
Open
2 of 10 tasks

Support Linux ARM64 build images #5631

robd003 opened this issue May 28, 2022 · 38 comments

Comments

@robd003
Copy link

robd003 commented May 28, 2022

Tool name

ARM64 Linux

Tool license

new processor architecture

Add or update?

  • Add
  • Update

Desired version

arm64

Approximate size

No response

Brief description of tool

Now that Azure supports ARM64 could we please get GitHub actions to support building Linux ARM64 binaries using ARM64 machines?

Using cross-compiling on x86_64 systems is about 5x slower.

URL for tool's homepage

https://azure.microsoft.com/en-us/blog/now-in-preview-azure-virtual-machines-with-ampere-altra-armbased-processors/

Provide a basic test case to validate the tool's functionality.

No response

Virtual environments affected

  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 10.15
  • macOS 11
  • macOS 12
  • Windows Server 2019
  • Windows Server 2022

Can this tool be installed during the build?

No response

Tool installation time in runtime

No response

Are you willing to submit a PR?

No response

@al-cheb
Copy link
Contributor

al-cheb commented May 30, 2022

Duplicate #2552

@al-cheb al-cheb closed this as completed May 30, 2022
@pukkandan
Copy link

@al-cheb Please do not close this as duplicate. @AlenaSviridenko closed #2552 because Azure did not support ARM at the time, asking to "create a new one [issue] in case of any other questions". Now, over an year later, Azure does support ARM64. So either this issue or #2552 should be re-opened

@JimBobSquarePants
Copy link

Please reconsider closing this.

@Perksey
Copy link

Perksey commented Aug 5, 2022

Please reopen!

@adamdecaf
Copy link

@al-cheb can we re-open this and add support for ARM64?

@al-cheb
Copy link
Contributor

al-cheb commented Aug 17, 2022

We plan to add this feature in the future but its not yet been prioritized.

@gdams
Copy link

gdams commented Aug 30, 2022

Presumably the announcement of Arm64 VMs in Azure will make enabling this much easier?

@calvinjhuang
Copy link

@al-cheb do we have a timeline for this in the near future?

@SaxyPandaBear
Copy link

I just ran into an issue where a test passed on AMD but failed on ARM. Would have been nice to catch this in our GitHub CI 😄

@rrzhang139
Copy link

Has anyone tested BuildJet on linux and darwin with different architectures (amd, arm, arm64)?

@mcblair
Copy link

mcblair commented Apr 14, 2023

Has anyone tested BuildJet on linux and darwin with different architectures (amd, arm, arm64)?

Yep! There were three major problems we had with BuildJet:

  1. We are a golang shop, and so it takes very little to configure go build; setting GOOS and GOARCH. So we did that, and were seeing inexplicable indefinite hangs. Support indicated we ran out of memory. Who knows what was actually going on here, but we didn't waste any cycles investigating.
  2. Queueing behind their concurrent runners is incredibly laggy and you'll be wanting more than 32 parallel, but you'll be asked to pay exorbitant amounts of cash monthly just to raise the limit by 100 cores. Not worth it for us, especially as their plans didn't go higher than 132 cores, even at the insane price points.
  3. Use caching of any kind? It will be incredibly slow, as nothing can beat the proximity of storage and runner colocation that GitHub has. In this case, the simple golang cache action became worthless as it spent more time uploading and downloading the than it took to download deps from scratch.

Our two goals were:

  1. Build arm64 artifacts natively
  2. Build them as fast or faster than x86_64

It didn't even need to be cheap, but considering all of the above, it was a hard-no.

@rrzhang139
Copy link

Thanks for the thoughtful response! We are also struggling to find a solution to build golang module artifacts natively with different platforms. We have a forked a repository that contains go scripts for building the code, instead of running go build, so it's been really difficult cross-compiling the commands to build the artifacts. So our two solutions are 1) changing the source code to support cross-compiling (which seems like a bad idea since the maintainers abandoned support because it was hard to maintain) or 2) having Github Actions call AWS nodes in different architectures to build for it.
Hope Github starts supporting other platforms soon :)

@Jayce-liang
Copy link

please add arm64!!!

@arpanbag001
Copy link

Please add arm support.
I'm using AWS and arm instances are way cheaper than amd64.
The only reason I can't use arm instances is that GitHub actions do not support arm.

@mfittko
Copy link

mfittko commented Apr 20, 2023

It's just way more convenient to work with arm based images and not having to deal with multi arch, if you have an ARM based mac, so big +1 here, too ;) it would just be so much more sustainable to be able to work and build for a single platform (of choice) - think of the environment! All these wasted cpu cycles!

@eggbean
Copy link

eggbean commented Apr 20, 2023

@arpanbag001 You could use an AWS Graviton instance as your own self-hosted runner for GitHub Actions, or you could use BuildJet. This has become a non-issue for me since I started using it. You only need to change one line in your action file. I've made dozens of builds and it hasn't even cost me anything yet.

https://buildjet.com/for-github-actions

@kylebrowning
Copy link

Sigh

@milanglacier
Copy link

Agree. Sigh...

@actions actions locked as off-topic and limited conversation to collaborators Jun 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests