graalvm / setup-graalvm

GitHub Action for setting up GraalVM distributions.
https://www.graalvm.org
Universal Permissive License v1.0
195 stars 28 forks source link

Any plans on supporting the aarch64 architecture? #9

Closed willemsst closed 2 years ago

willemsst commented 2 years ago

Hi,

I've been playing around with this action and it works pretty well. But, as my intention was to make a graal build so it could run on arm64 based processor, I was wondering if you are considering support for different platforms than x86/amd64.

The way I configured my workflow right now, is that I use the matrix setup. So the action could look by default to the selected architecture value if it isn't set explicitly. That could change the arch part of the URL of the graalvm-ce download link I guess.

    strategy:
      fail-fast: false
      matrix:
        os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
        architecture: [x86, ARM64]
        exclude:
          - os: 'macos-latest'
            architecture: 'ARM64'
          - os: 'windows-latest'
            architecture: 'ARM64'

Would like to here your thoughts.

fniephaus commented 2 years ago

Hi @willemsst,

Thanks for the question. GitHub unfortunately only provides free amd64-based runners at the moment. However, arm64 is supported if you use a self-hosted runner, but that needs some additional setup work, it requires that you provide the computing resources, and it is only recommended for private repositories due to security concerns. There are ways (e.g., using this action) to emulate other architectures including arm64 but that is potentially slow and further reduces the already limited memory resources (see #6).

As part of #8, we are going to add support for arm64/aarch64 to this action. If you want to set up a self-hosted runner and play around with this earlier, we can add support for arm64 now.

willemsst commented 2 years ago

Thx @fniephaus for the quick and elaborate reply.

I'll take a look at the pointers you provided. Some I had already noticed. I'll give the emulation action a shot, and if that doesn't work out, I'll wait for #8. I also saw this older (no longer maintained action from DeLaGuardo. But I guess it suffers from the same issue, that it needs self-hosted or emulated runners.

I was simply going to build a hobby project experimenting with Micronaut to read out my digital meter at home and deploy it on a RPi. But because of chip shortages I could only get a 1Gb one so I decided to throw graalvm in the mix to reduce memory usage. And here I am, yet again at the bloody edge of new technology 🤦‍♂️

It's fun though 😄

fniephaus commented 2 years ago

I just set up an arm64-based, self-hosted runner and managed to build a hello world with the version from #8:

image

Note that Oracle Cloud Infrastructure provides a free tier that can be used to deploy an arm64-based, self-hosted runner: https://blogs.oracle.com/cloud-infrastructure/post/announcing-github-actions-arm-runners-for-the-arm-compute-platform-on-oracle-cloud-infrastructure

fniephaus commented 2 years ago

I was simply going to build a hobby project experimenting with Micronaut to read out my digital meter at home and deploy it on a RPi. But because of chip shortages I could only get a 1Gb one so I decided to throw graalvm in the mix to reduce memory usage. And here I am, yet again at the bloody edge of new technology

Ha, if only you had the 4GB or even the 8GB model you could build native executables with GraalVM Native Image on the RPi.

It's fun though

That's what matters!

willemsst commented 2 years ago

Super 👍

Will look into this after hours. Looking forward to the new release. And thank you for helping me out. On 8 Mar 2022, 10:09 +0100, Fabio Niephaus @.***>, wrote:

I just set up an arm64-based, self-hosted runner and managed to build a hello world with the version from #8: Note that Oracle Cloud Infrastructure provides a free tier that can be used to deploy an arm64-based, self-hosted runner: https://blogs.oracle.com/cloud-infrastructure/post/announcing-github-actions-arm-runners-for-the-arm-compute-platform-on-oracle-cloud-infrastructure — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you modified the open/close state.Message ID: @.***>

fniephaus commented 2 years ago

You are welcome! I've reopened this so that others see that this is being worked on.

fniephaus commented 2 years ago

I've pushed https://github.com/graalvm/setup-graalvm/commit/b76e2627a290a9cbdb8719eaeeb4aa303e96bcef which adds support for aarch64 builds to this action and I've verified this works using a self-hosted runner.

guizmaii commented 2 years ago

@fniephaus Is possible to document in the README that the arch will be automatically picked up for us, please?

fniephaus commented 2 years ago

@guizmaii Sure, hope this works for you: https://github.com/graalvm/setup-graalvm/commit/73120ff7a9c230e37fb625b29fad7f16cc22e119. Otherwise, feel free to open a PR. :)