Skip to content
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

Set up CI support for Apple Silicon #1263

Closed
Tracked by #1136
ychin opened this issue Aug 5, 2022 · 4 comments · Fixed by #1478
Closed
Tracked by #1136

Set up CI support for Apple Silicon #1263

ychin opened this issue Aug 5, 2022 · 4 comments · Fixed by #1478
Labels
Infrastructure Non-app infrastructure issues, e.g. CI

Comments

@ychin
Copy link
Member

ychin commented Aug 5, 2022

We should set up CI on a machine running in Apple Silicon so we can run tests on native hardware to make sure it runs. Right now we only run CI on x86 machines (since that's the only option available in GitHub-hosted runners), which builds a cross-platform universal build, but doesn't allow us to actually test that the app works in Apple Silicon. There could be a lot of reasons how the Apple Silicon build could break (e.g. if the gettext dependency got broken on the ARM side) and we should at least try to test that the app launches.

Also, currently building the cross-platform build is somewhat annoying because on x86 we have to manually grab the ARM builds of gettext and other libraries and link against them, since Homebrew will only grab the x86 versions. On Apple Silicon machines this could potentially be easier since we can use Rosetta 2 to run both x86 and ARM binaries on a single host.

Currently this is blocked by available runners GitHub provides so unless there is an easy and free way to host Apple Silicon CI runners this won't be available.

Part of #1136.

@ychin ychin changed the title CI support for Apple Silicon. We need to spin up CI so we can at least run tests on native hardware. In theory we could omit this and cross-build MacVim from x86 but it's less ideal and it's actually harder to set up that way. Set up CI support for Apple Silicon Aug 5, 2022
@mplough
Copy link

mplough commented Aug 7, 2022

Support for GitHub-hosted M1 runners is tracked on GitHub's roadmap. Currently the feature is in beta but it's sitting way over in "future" on the roadmap, so no estimated timeline until it goes GA. See github/roadmap#528.

@ychin ychin added the Infrastructure Non-app infrastructure issues, e.g. CI label Aug 7, 2022
@ychin
Copy link
Member Author

ychin commented Oct 7, 2023

They have added M1 runners but it's paid-only for now. Still debating options.

@dongyuwei
Copy link

https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/ M1 macos runner is available to open source project.

Can speedup by 200%~300%.

@ychin
Copy link
Member Author

ychin commented Feb 4, 2024

Oh nice! Thanks for letting me know. I will take a look. Seems like starting from macOS 14, GitHub Actions will exclusively use Apple Silicon only anyway so I will have to make sure to migrate the CI pipeline to support Apple Silicon.

This does mean testing and supporting Intel Macs may become harder and harder in the future, which kind of makes sense given that you can't really buy them anymore. At least we can test them under Rosetta 2 in Apple Silicon (if Apple doesn't deprecate that too…).

Just a related comment to put it here so I remember: Another thing I noticed is that GitHub published a roadmap for future deprecation (actions/runner-images#9255). Seems like they plan to deprecate the macos-12 image by EOY 2024, which is problematic because that's the image that we rely on to build the legacy binary (targeting macOS 10.9 - 10.12) for MacVim. This could make supporting legacy builds harder next year. Probably a problem for tomorrow me 🤷.

ychin added a commit to ychin/macvim that referenced this issue Feb 6, 2024
GitHub Actions has recently added support for macos-14 runners which
run on top of Apple Silicon. Switch CI to using it for publishing binary
builds. Keep running the other OSes for now to test compatibility.

Close macvim-dev#1263
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Infrastructure Non-app infrastructure issues, e.g. CI
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants