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 raspberry pi checks to the CI #1222

Merged
merged 4 commits into from
Jan 13, 2025
Merged

Add raspberry pi checks to the CI #1222

merged 4 commits into from
Jan 13, 2025

Conversation

sirknightj
Copy link
Contributor

@sirknightj sirknightj commented Jan 7, 2025

Issue #, if available:

  • N/A

Description of changes:
This pull request introduces a new CI/CD pipeline for building and testing our application on ARM-based Raspberry Pi OS environments. The implementation leverages GitHub Actions and QEMU emulation to ensure compatibility and maintain build integrity across different Raspberry Pi OS versions.

Key Features:

  1. Utilize QEMU emulation of ARM architecture on x86_64 GitHub runners. (Note: GitHub actions does not currently support linux-arm64)
  2. Matrix build strategy: Simultaneously tests on both Debian 11 (Bullseye) and Debian 12 (Bookworm) Raspberry Pi OS versions.
  3. Runs the sample GStreamer pipeline test with a 30-second timeout and appropriate error handling.

Security Considerations:

  • Environment variable secrets are automatically obfuscated by GitHub actions to prevent accidental logging.

Testing:

  • Verified successful building of the project and execution of the GStreamer pipeline (review the logging output of the runners).
  • Confirmed proper handling of timeouts and exit codes.
  • Checked the logs to confirm that aarch64-linux is indeed being used and not x86_84
    • The images have OpenSSL 1.1.1w and 3.0.15 installed respectively.

This implementation significantly enhances our ability to ensure code quality (reduce build issues) and compatibility across different Raspberry Pi OS versions, reducing manual effort required. Streamlining our development and deployment processes for ARM-based environments.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@sirknightj sirknightj added the CI label Jan 7, 2025
@sirknightj sirknightj force-pushed the rpi-ci branch 7 times, most recently from 624ccfb to b9877d6 Compare January 7, 2025 09:13
cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_DEPENDENCIES=OFF -DALIGNED_MEMORY_MODEL=ON
make -j$(nproc)

export GST_PLUGIN_PATH=$(pwd)
Copy link
Contributor

Choose a reason for hiding this comment

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

Not immediately required for this CR but is something to consider for the future: It would be worth checking if we remove the toolchain after the build has completed successfully.

@sirknightj sirknightj merged commit 1ba1872 into develop Jan 13, 2025
16 checks passed
@sirknightj sirknightj deleted the rpi-ci branch January 13, 2025 22:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants