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

feat(build): add arm64 support with cross-compilation #3659

Merged
merged 3 commits into from
Mar 1, 2022

Conversation

gustavovalverde
Copy link
Member

Motivation

To run dockerized containers in M1 and other arm64 processors, we need to cross-compile the Docker image for this platforms. This makes it very hard to test locally, as all builds must be done remotely, or pushing to confirm on GHA.

Solution

  • Add QEMU for arm64 platform support
  • Build the docker image with arm64

Review

@dconnolly can review this

@gustavovalverde gustavovalverde added A-devops Area: Pipelines, CI/CD and Dockerfiles P-High 🔥 labels Feb 26, 2022
@gustavovalverde gustavovalverde changed the base branch from main to add-lightwalletd-build February 26, 2022 01:06
@gustavovalverde gustavovalverde changed the base branch from add-lightwalletd-build to refactor-dockerfiles February 26, 2022 01:06
This package is not available for this platform
Copy link
Contributor

@teor2345 teor2345 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems important, because we have at least two engineers using machines with ARM processors. But this also adds another supported platform to CI.

Did you want to check with the whole team before we merge this?

Last time we talked about our supported platforms, the next step was a creating a draft list of platforms and support levels.

(I'm marking this as "Request Changes", so we don't accidentally merge it.)

Copy link
Contributor

@teor2345 teor2345 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is ok, but I'd like to know how long it takes in CI.

@gustavovalverde gustavovalverde merged commit 291e00c into refactor-dockerfiles Mar 1, 2022
@gustavovalverde gustavovalverde deleted the feat-build-arm64 branch March 1, 2022 02:34
@gustavovalverde gustavovalverde restored the feat-build-arm64 branch March 1, 2022 02:38
@gustavovalverde gustavovalverde deleted the feat-build-arm64 branch March 1, 2022 02:38
@gustavovalverde gustavovalverde restored the feat-build-arm64 branch March 1, 2022 09:50
gustavovalverde added a commit that referenced this pull request Mar 1, 2022
dconnolly pushed a commit that referenced this pull request Mar 2, 2022
* feat(build): add arrm64 support

* fix(build): do not install google-compute-engine in arm64

This package is not available for this platform

* fix(build): do not build arm64 for tests
dconnolly pushed a commit that referenced this pull request Mar 2, 2022
mergify bot pushed a commit that referenced this pull request Mar 2, 2022
* add(actions): lightwalletd continous integrations

* refactor(actions): build lightwalletd and reuse it in zebra

- Download lightwalletd source code
- Create a new Dockerfile for lightwalletd
- Use lightwalletd binary in Zebra's image
- Create a specific step to build/update lightwalletd
- Add lightwalletd integration test to the test suite
- Remove lightwalletd.yml, as it was harder to control

* fix(build): remove extra port being exposed

* fix(lightwalletd): test should be after `--` in cargo test

* revert(lint): do not lint external code as it can be confusing

* fix(test): lightwalletd_integration test is not ignored

* docs(docker): clarify the addition of unused args

* refactor(docker): organize Dockerfiles and remove unused

Fixes: #3344

* fix(actions): activate workflows on correct path changes

* test

* revert previous commit

* feat(build): add arm64 support with cross-compilation (#3659)

* feat(build): add arrm64 support

* fix(build): do not install google-compute-engine in arm64

This package is not available for this platform

* fix(build): do not build arm64 for tests

* fix(changes): reduce changelog

* Revert "feat(build): add arm64 support with cross-compilation (#3659)"

This reverts commit 291e00c.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-devops Area: Pipelines, CI/CD and Dockerfiles
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants