Comments (4)
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.
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.
@elijahr The benefit would be:
- Architecture support on different OSes, they are now only x86-64 as far as I know.
- 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.
@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)
- Using Actions HOT 4
- Small mistake HOT 2
- How to use a base_image with multiple-platforms for aarch64? HOT 5
- The process '/home/runner/work/_actions/uraimo/run-on-arch-action/v2/src/run-on-arch.sh' failed HOT 3
- feature request: Firecracker VM support HOT 1
- can't use cargo in this action HOT 3
- nodejs cef build is failed HOT 1
- /root/run-on-arch-install.sh: not found HOT 5
- Multiple steps in a job HOT 7
- Support for actions steps instead of just shell commands HOT 1
- Error while setting up Go
- Failure to find and start dockers HOT 1
- The requested image's platform does not match the detected host platform HOT 1
- Need pinned Alpine Linux versions, e.g., v3.17 HOT 2
- not enough free disk space? HOT 4
- githubToken is required HOT 1
- Tag error for version 2.5.1 =>v.2.5.1 HOT 1
- Container always rebuilt HOT 2
- How can I copy files to host?
- Mounted Volume only gets updated after the `run` step completed HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from run-on-arch-action.