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

Provide optimised arm binaries #286

Closed
mainrs opened this issue Sep 9, 2019 · 3 comments
Closed

Provide optimised arm binaries #286

mainrs opened this issue Sep 9, 2019 · 3 comments
Labels
ci CI related issues or improvements wontfix Issues that will not be fixed under any circumstances

Comments

@mainrs
Copy link
Member

mainrs commented Sep 9, 2019

armv7 allows for further optimisation during compilation. We currently only offer armv6 binaries, which run on armv7 too though.

@mainrs mainrs added the enhancement A new feature that would improve Spotifyd label Sep 9, 2019
@mainrs mainrs added ci CI related issues or improvements and removed enhancement A new feature that would improve Spotifyd labels Sep 10, 2019
@juliangaal
Copy link
Contributor

Which optimizations are these exactly? Getting an armv7 device in the mail today :D

@mainrs
Copy link
Member Author

mainrs commented Oct 15, 2019

That's a hard one I think. At least I couldn't really figure it out. Cross compilation is a bitch sometimes >.>

We currently are on the move to Github Actions (GA) but still use the good old Travis CI. ci.yml does some linting and formatting checks for PRs, cd.yml does the binary compilation for linux and macos. The ARM binaries are still compiled on Travis CI.

So this issue would mean to first move the compilation of the ARM binaries to GA. You probably have to create a new workflow as you can't have arm and amd64 binaries installed on the same instance, something like cd_armv7.

Which optimizations are these exactly?

Ideally you would create three new workflows (armv6, armv7 and aarch64). In theory, armv6 can run on all of them, but each new version introduces new instructions and optimizations the compiler can do. So separate binaries would be ideal.

Currently, only armv7 gets build on Travis CI.

But how do I test workflows?

What a great question to ask! You would create a fork of Spotifyd, push a new workflow and create a PR. Make sure to set the trigger to pull_requests for testing purposes. Remove the old workflows to shorten run-time. Each new commit to the same PR will trigger a new workflow run. Quite cumbersome yes.

I think the key/trick is to create a workflow for each architecture. I already tried arm compilation but was super greedy and created one workflow for all of them, which didn't work. So I gave up for now :)

Note: You can still use the arm binary under releases for now if you want to. the improvements are minor (like, really minor). So if you don't have the time nor the nerves, don't try it haha :D

@stale
Copy link

stale bot commented Jan 13, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix Issues that will not be fixed under any circumstances label Jan 13, 2021
@stale stale bot closed this as completed Jan 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci CI related issues or improvements wontfix Issues that will not be fixed under any circumstances
Projects
None yet
Development

No branches or pull requests

2 participants