-
Notifications
You must be signed in to change notification settings - Fork 454
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
CI: Parallel Build / Cross Compilation #1169
Conversation
From my initial review, I believe we might have some problems with not all platforms being supported within GitHub Actions. MacOS ARM + Linux ARM didn't exist when I checked, and Linux doesn't allow for building for ARM on a x64 platform. |
I believe that we should also have this effect the publish GitHub Action as well. However I've just seen that @NovusTheory recently removed the MacOS (Arm) support until there is a native support for it in Actions. |
@Alipoodle Having arm64 specified would still produce a build successfully though I believe running it would just leave it being damaged (refer to macOS). That's why I stripped out the macOS from publish so we're not publishing broken builds on releases. I'm perfectly fine with the CI having them though for commit push builds. I'd say leave this out of the publish workflow for now |
That is a no (i.e., all GitHub-hosted runners are x64 ATM) - although GH Actions could be set up and run on self-hosted ARM64 runners.
To my knowledge, ARM64 builds still can be generated on x64 runners via cross compilation. I have verified cross compilation working with Windows ARM64 (again, I have a Surface Pro X myself to test), and believe that this PR is generating macOS ARM64 and Linux ARM64 builds successfully. I tested the Linux ARM64 build and can verify it working, but I don't have a M1/M2 Mac to verify the Mac ARM64 build. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After looking into each binary I can confirm they all report the ARM architecture. I ran one of the linux builds on an old raspberry pi I have and it worked just fine. I'm going to mimic this workflow in the publish workflow and on next release it should contain every architecture.
Besides the architecture concerns I'm happy with the better build parallelization. Thank you
This PR adds:
I own a Surface Pro X (a niche platform IMO... lol) myself and can confirm that a "working" build for
windows/arm64
is generated with the changed workflow. See https://github.com/ElectricalBoy/ytmdesktop/actions/runs/6281142179 for POC.