Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Add ARM builds to CI#224

Closed
Raekye wants to merge 2 commits intoethereum:devfrom
Raekye:master
Closed

Add ARM builds to CI#224
Raekye wants to merge 2 commits intoethereum:devfrom
Raekye:master

Conversation

@Raekye
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor

hwwhww commented Feb 2, 2022

closing in favor of #232

@hwwhww hwwhww closed this Feb 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ARM binary

2 participants