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

Add ARM builds to CI #224

Closed
wants to merge 2 commits into from
Closed

Add ARM builds to CI #224

wants to merge 2 commits into from

Conversation

Raekye
Copy link
Contributor

@Raekye Raekye commented Dec 18, 2021

ARM builds are useful for those wanting to generate keys on an offline ARM machine, most accessible of which is a raspberry pi. Currently, to use eth2.0-deposit-cli on an ARM machine, the user must connect to the internet to install dependencies. This defeats the purpose of an offline machine. This PR would close #82 .

The first commit creates build-linux-arm, a copy of build-linux which uses an ARM CI environment, freely supported by Circle CI. However, the current specified version of PyInstaller (3.6) required for building the binary fails to compile due to warnings and -Werror: Circle CI link for the first commit.

The second commit updates PyInstaller to the latest version (4.7). Just doing this also fails, as transitive dependencies of PyInstaller are not pinned to a specific version, which is required by the hashes. Just as in the project's root requirements.txt, the specific versions of transitive dependencies are specified at the bottom of build_configs/linux/requirements.txt. Since these dependencies were only specified with >=, I opted to use the latest versions of the underspecified packages (links provided for convenient checking of the hashes):

The build-linux CI job continues to pass with the updated dependencies: Circle CI link for build-linux and build-linux-arm. I tested the ARM artifacts produced on an emulated qemu ARM vm and it seems to work fine. I will test on a raspberry pi later today

@hwwhww hwwhww changed the base branch from master to dev December 23, 2021 15:43
@hwwhww
Copy link
Contributor

hwwhww commented Dec 23, 2021

Hey @Raekye this is amazing!

I just changed this branch to target at dev branch.

It seems the CI jobs only exist on your repo but not on this PR page. I guess it was some CircleCI glitch. Could you push something to the PR (e.g., resolve conflicts) to see if it can trigger the CI?

I suggest noting that it is ARM64 rather than just "ARM".

I can also open a new PR based on your commits and resolve the conflict next week.

Thank you!

@Raekye
Copy link
Contributor Author

Raekye commented Dec 23, 2021

Hi @hwwhww thanks for looking into it! I didn't realize there was already a dev branch with updated dependencies. As for merge conflicts, it's just the versions in build_configs/linux/requirements.txt - dev has PyInstaller 4.2 (and associated dependencies) whereas my PR has the latest 4.7 (and latest dependencies) - should I use the existing dev dependencies, or the newer ones? If we're using the newer ones, I'm guessing I should split the commits adding the circleci config and updating the dependencies?

This was referenced Jan 27, 2022
@hwwhww
Copy link
Contributor

hwwhww commented Feb 2, 2022

closing in favor of #232

@hwwhww hwwhww closed this Feb 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ARM binary
2 participants