Skip to content

Conversation

@pushkarnk
Copy link
Collaborator

No description provided.

@pushkarnk pushkarnk requested a review from Copilot December 3, 2025 03:59
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the CI pipeline to run builds and tests across multiple architectures (amd64, arm64, ppc64el, s390x) using QEMU emulation, enhancing cross-platform compatibility testing.

Key Changes:

  • Added matrix strategy to run CI builds on four different architectures (amd64, arm64, ppc64el, s390x)
  • Integrated QEMU setup for emulating non-amd64 architectures
  • Updated JAVA_HOME path to be architecture-specific

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

name: Build on ${{ matrix.arch }}

steps:
- name: Set up QEMU for non-amd64 architectures
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Setting up QEMU with 'platforms: all' is unnecessary and wasteful for amd64 builds. Consider adding a condition to skip QEMU setup when matrix.arch is 'amd64', as native execution is significantly faster than emulation.

Suggested change
- name: Set up QEMU for non-amd64 architectures
- name: Set up QEMU for non-amd64 architectures
if: matrix.arch != 'amd64'

Copilot uses AI. Check for mistakes.
Comment on lines 45 to 48
git clone https://github.com/openssl/openssl && cd openssl
git checkout openssl-3.0.2
sudo apt update && sudo apt install build-essential -y
./Configure enable-fips && make && sudo make install && sudo make install_fips
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Building OpenSSL from source for each architecture will be extremely time-consuming under QEMU emulation (especially for s390x and ppc64el). Consider using pre-built OpenSSL FIPS packages if available, or caching the compiled binaries per architecture to avoid rebuilding on every CI run.

Copilot uses AI. Check for mistakes.
- name: Build with Maven/JDK 17
env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64/
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-${{ matrix.arch }}/
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

The JAVA_HOME path construction assumes the JDK package follows the naming convention 'java-17-openjdk-', but the apt package 'openjdk-17-jdk-headless' typically installs to '/usr/lib/jvm/java-17-openjdk-amd64/' regardless of the host architecture. This path will be incorrect for emulated architectures. You need to either install architecture-specific JDK packages or detect the actual installation path.

Copilot uses AI. Check for mistakes.
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.

2 participants