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

Support Linux machines #15

Closed
nuhkoca opened this issue Jan 8, 2020 · 10 comments · Fixed by #39
Closed

Support Linux machines #15

nuhkoca opened this issue Jan 8, 2020 · 10 comments · Fixed by #39
Labels
enhancement New feature or request

Comments

@nuhkoca
Copy link

nuhkoca commented Jan 8, 2020

Hello,

As Github charges us 10 times per run on macOS machines, is there any way to support this action for Linux machines, too? Thanks.

@ychescale9
Copy link
Member

Hi. Unfortunately we can't support Linux due to the Linux VMs not supporting KVM, which is required for running hardware accelerated Emulators.

The host VMs not supporting KVM is still the main hurdle for running hardware-accelerated Android Emulators on cloud hosted CI. The macOS VMs happen to have HAXM installed hence I created this Action to take advantage of the hardware acceleration support.

As an alternative you could look at Cirrus CI which provides KVM-enabled Linux VMs and pricing seems pretty reasonable. Here are some templates to help you get started.

@nuhkoca
Copy link
Author

nuhkoca commented Jan 8, 2020

@ychescale9 thanks for a prompt reply. I will take a look then :)

@nuhkoca nuhkoca closed this as completed Jan 8, 2020
@PaulWoitaschek
Copy link

And can you make the error a warning? I have a small testcase and like to run it without hardware acceleration anyways.

@ychescale9
Copy link
Member

We could, but then I don't think you'll get much by using this action as you could just use one of the docker images with ARM system images and run it on a ubuntu-xxx VM without a custom action.

If we were to support running on linux VM with old system images we'll need to support specifying armeabi-v7a or arm64-v8a for arch. I haven't tried but I remember these images are only available in some of the older API levels and it's just hit or miss.

I'm also tracking this issue for supporting custom system images and I wonder if we'll need to lift this macOS-only restriction after all.

@PaulWoitaschek
Copy link

PaulWoitaschek commented Mar 25, 2020

Well it would be more robust and I would not need to perform additional platform checks but get the acceleration when available.

@PaulWoitaschek
Copy link

I don't fully understand the implications but would this solve the whole problem in general?
https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html

@ychescale9
Copy link
Member

What it means is that if your app depends on native libraries that only runs on ARM-based system images, now you can run it on the modern x86 / x86_64 images.

Unfortunately this doesn't help us as the limitation of not enabling native hardware acceleration on the Linux VMs comes from the CI providers (GitHub Actions, CircleCI, travis etc) and Cirrus CI is the only one I know that doesn't have this restriction.

This article should give you more context: Running Android Instrumented Tests on CI.

@ychescale9
Copy link
Member

ychescale9 commented Mar 28, 2020

Linux (no hardware acceleration) support is now available!

@nuhkoca
Copy link
Author

nuhkoca commented Mar 28, 2020

That's a great news, thanks for your effort!

@PaulWoitaschek
Copy link

Muchas Gracias!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
3 participants