Git Product home page Git Product logo

Comments (4)

eirikb avatar eirikb commented on May 3, 2024 3

There certainly would be some gymnastics, but not necessarily that much, considering winget, homebrew, mingw and other similar tools at hand. One project I'm working on now uses OS matrix for semi-advanced stuff, and same jobs work fine cross Linux/Windows/MacOs. If I could add architecture to the matrix as well that would be mind blowing.

I need ARM support for Windows and MacOS on the same project, perhaps I will see if I can make something work in qemu. Even as self-hosted that would be neat. It's not something I have at hand (hardware) anyway. I don't know if many cloud providers offer this either, AWS has aarch64 support, but not sure if that is Linux only.

from run-on-arch-action.

elijahr avatar elijahr commented on May 3, 2024

From what I understand, Github Actions has a dedicated macOS build farm that's used for the macOS builds. Probably something similar with Windows.

run-on-arch-action uses qemu via docker, which does allow some interesting non-linux possibilities, for instance I think NetBSD and such can be run even though docker is usually just for Linux. I'm not sure what would be possible with running macOS or Windows inside of qemu via docker. Probably someone has tried, though it would require OS images, and as you say would probably have licensing issues.

Since Github Actions already has (non-emulated) Windows and macOS runners available, what benefit would you get from run-on-arch-action supporting these operating systems?

from run-on-arch-action.

eirikb avatar eirikb commented on May 3, 2024

@elijahr The benefit would be:

  1. Architecture support on different OSes, they are now only x86-64 as far as I know.
  2. Identical build job cross OSes using a matrix. Now it would require a separate job for Windows/MacOS.

In the end run-on-arch uses buildx, and from what I can tell it might not be so straight forward using that approach.
Might have to run qemu directly (and manually), with predefined images. Much hassle.

from run-on-arch-action.

elijahr avatar elijahr commented on May 3, 2024

@eirikb Ah, yep, Windows and macOS arm64 would be cool. I've wanted macOS arm64 support for Github Actions too. Who knows if Github will add such runners though. If so it is probably years off. For what its worth: self-hosted runners are an option so that you could run actions on arm64 natively. I'm pretty sure both Windows arm64 and Linux arm64 (aarch64) are supported. Last I checked in 2020, the .NET runtime still needed porting to Apple Silicon for macOS arm64 to be supported.

As for having a single build job, that would be cool, though the amount of gymnastics it would likely require, just for the benefit of a simpler and easier-to-maintain YAML file, I think makes it not worth it. Plus it would be slower.

If you can figure out a way to make these work, pull requests are welcome! I suspect it would not be a clean solution and might merit being in a separate action due to different configuration needs.

from run-on-arch-action.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.