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 MIPS32 cross compilation, refactor existing cross-compilation jobs #2091

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

sirknightj
Copy link
Contributor

Issue #, if available: N/A

What was changed?

  • Updated the GitHub Actions CI configuration to include cross-compilation for mips-32, arm-32, arm-64, and aarch-64 targets, using the public.ecr.aws/ubuntu/ubuntu:22.04_stable Docker image for each cross-compilation environment.
  • Removed previous individual cross-compilation jobs for arm64, linux-aarch64, and arm32, consolidating the builds into a unified matrix approach.

Why was it changed?

  • Using the docker images should stop the builds from breaking randomly due to updates to GitHub actions runner images.
  • Enable cross-compilation for additional architectures (mips-32) in the CI pipeline while ensuring a cleaner, more maintainable configuration.
  • Removed redundant individual job definitions (arm-32, arm-64, aarch-64) and consolidated them into the matrix strategy to streamline the CI process.

How was it changed?

  • Added new cross-compilation matrix in the CI configuration.
  • For each architecture, defined specific cross-compilation toolchains, install dependencies, and adjusted flags to match the respective target platform (e.g., OpenSSL or MbedTLS).
  • Integrated the public.ecr.aws/ubuntu/ubuntu:22.04_stable Docker image for containerized cross-compilation.
  • Use file-expected-output parameter for each architecture to correctly match the generated output file.

What testing was done for the changes?

  • Ran the new job on a fork of the repository and these changes succeed there.

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 Automated testing label Dec 12, 2024
@stefankiesz stefankiesz changed the base branch from release-v1.12.0 to develop December 17, 2024 21:34
@stefankiesz stefankiesz changed the base branch from develop to release-v1.12.0 December 17, 2024 21:34
@sirknightj sirknightj force-pushed the cross-compilation-job branch from ed7ebbb to 4f67a4a Compare December 17, 2024 23:00
@sirknightj sirknightj changed the base branch from release-v1.12.0 to main December 17, 2024 23:01
@sirknightj sirknightj changed the base branch from main to develop December 17, 2024 23:01
@sirknightj sirknightj marked this pull request as ready for review December 17, 2024 23:02
run: |
export CC=${{ matrix.compiler.cc }}
export CXX=${{ matrix.compiler.cxx }}
echo "Using $CC and $CXX"
Copy link
Contributor

Choose a reason for hiding this comment

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

(nit) "Using CC: $CC and CXX: $CXX"

file ./samples/kvsWebrtcClientMaster
readelf -a ./tst/webrtc_client_test
readelf -a ./samples/kvsWebrtcClientMaster
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you test that the CI job does fail if the build is successful but the files are missing or don't contain expected output?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Automated testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants