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

Added aarch64 workflow #315

Merged
merged 2 commits into from
Jan 29, 2024

Conversation

StefanBossbaly
Copy link
Contributor

What

Given that the vast majority of our target devices use the aarch64 ISA, it would be beneficial to run a build and test using that architecture. Since Github runners use x64, we have to use qemu to emulate both the build and test environment. There is a signifact performance penalty when using qemu. It might be possible to do the build using the aarch64-unknown-linux-gnu toolchain on x64 and just run the unit tests in the qemu environment, but it would require the sysroot and rootfs to be binary compatible.

Why

Difference in types (especially when using FFI functions) can cause compilation errors. This ensure that future changes must pass both x64 and aarch64 workflows inorder to be considered for a merge into master.

How

By using qemu, we are able to confirm that Ripple can compile on aarch64, the target architecture.

Test

Verify that the new Github action passes.

Checklist

  • I have self-reviewed this PR
  • I have added tests that prove the feature works or the fix is effective

@StefanBossbaly StefanBossbaly force-pushed the add-aarch64-workflow branch 3 times, most recently from 6619b28 to 1ce4e50 Compare November 14, 2023 20:36
@StefanBossbaly
Copy link
Contributor Author

@brendanobra Two things to note.

  1. This workflow does take 50 mins to complete. Up to the Ripple team if that is too long to make a blocking merge.
  2. This workflow will create an image of the docker container used to build and run the workflow on aarch64 and save it to this repo's packages. This speeds up the process as subsequent builds don't have to completely rebuild the image. No concerrns just something the team should be aware of. You can read more about it here: https://github.com/uraimo/run-on-arch-action#usage

@satlead satlead added the needs-onboarding Changes which need to be onboarded for testing label Nov 27, 2023
@Nv-Delle1416 Nv-Delle1416 added this to the ripple-1.2.0 milestone Jan 17, 2024
@Nv-Delle1416 Nv-Delle1416 removed the needs-onboarding Changes which need to be onboarded for testing label Jan 17, 2024
Given that the vast majority of our target devices use the aarch64 ISA,
it would be beneficial to run a build and test using that architecture.
Since Github runners use x64, we have to use qemu to emulate both the
build and test environment. There is a signifact performance penalty
when using qemu. It might be possible to do the build using the
aarch64-unknown-linux-gnu toolchain on x64 and just run the unit tests
in the qemu environment, but it would require the sysroot and rootfs to
be binary compatible.
@Nv-Delle1416
Copy link
Contributor

@StefanBossbaly please update your PR and go ahead and merge your changes to main branch

@Nv-Delle1416 Nv-Delle1416 merged commit 83b5b1c into rdkcentral:main Jan 29, 2024
8 checks passed
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.

4 participants