Skip to content

Any possibility for ARM (Raspberry Pi) support? #90

Closed

Description

@dogweather

I found that setup-ruby downloads an x86 binary when run on a Raspberry Pi self-hosted runner. Is there a way to add ARM binaries here or to ruby-builder?

Activity

  1. dentarg commented on Sep 28, 2020

    @dentarg

    I don't think it will be possible until github/roadmap#95

    I think you will have to compile on ARM yourself until then

  2. dogweather commented on Sep 29, 2020

    @dogweather
    Author

    Thanks! So this project's scope isn't really the whole ruby organization, it's more like setup-github-ruby?

  3. eregon commented on Sep 29, 2020

    @eregon
    Member

    In short this action does not support self-hosted runners (EDIT: except if they correspond to github-hosted runner images), because it's not possible to precompile for all variants of them.

  4. dogweather commented on Oct 7, 2020

    @dogweather
    Author

    How about if I do the ARM equivalent of what you're doing for X86: create precompiled binaries in a repo in the same layout?

  5. eregon commented on Oct 7, 2020

    @eregon
    Member

    Yes, you could fork https://github.com/ruby/ruby-builder and make your own builds, I think that's a good solution for self-hosted.
    And we can add an input in this action to use an alternative source for releases / built Rubies. We'll need to figure out a way to list versions of such an external repository, though.

    Interesting, it seems the GHA runner just got pre-release support for ARM: https://github.com/actions/runner/releases/tag/v2.273.5

    If GitHub also adds GitHub-hosted ARM runners, I could try making ARM builds in ruby/ruby-builder too (although I expect older Ruby releases or ruby installers might not support ARM yet).
    Without GitHub-hosted ARM runners, I don't know how I would run these builds, so it seems difficult.

    Also as usual, a built Ruby is often not portable across OS, etc, so depending on which Raspberry Pi and which OS & OS version a build might or not work. If you make your own builds then of course you can guarantee the exact same environment.

  6. eregon commented on Oct 7, 2020

    @eregon
    Member

    BTW I wonder if any other setup-* action supports self-hosted runners and how.
    I guess they don't support it, or they expect the software (here Ruby) to be already installed on disk.

  7. dogweather commented on Oct 10, 2020

    @dogweather
    Author

    Once I get the build script working, I could donate the Raspberry Pi compute resource for creating the ARM binaries. I.e., I own several new Raspi's which are running the GitHub self-hosted runner software. It'd be no problem to set up another instance of it and register it with this repo as an ARM-tagged runner.

    And yep, I found that setup-python has the same X86 assumptions. In that case, though, it's a little easier because the various ARM Linuxes come with Python 3 pre-installed. So it was easy for me to make a basic Python ARM build script.

  8. eregon commented on Oct 10, 2020

    @eregon
    Member

    In that case, though, it's a little easier because the various ARM Linuxes come with Python 3 pre-installed.

    Isn't there a Ruby package too on Debian-based Linux for ARM64?
    That of course provides only 1 Ruby version, but it might be the most convenient way to get started for self-hosted.

  9. eregon commented on Mar 3, 2023

    @eregon
    Member

    With #473 this action now gives instructions for how to make it work for self-hosted runners not matching a GitHub-hosted runner image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions