diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 312e046..41ff2b2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -68,11 +68,15 @@ jobs: path: ./instrumentation/dist/*.${{ matrix.SYS_PACKAGE }} packaging-integration-tests: - runs-on: ubuntu-24.04 strategy: matrix: SYS_PACKAGE: [ "deb", "rpm" ] lang: [ "java", "nodejs", "dotnet" ] + arch: [ "amd64", "arm64" ] + exclude: + - lang: "dotnet" + arch: "arm64" + runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }} steps: - name: Check out the codebase. uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 @@ -82,8 +86,8 @@ jobs: # in the step "Build ${{ matrix.ARCH }} ${{ matrix.SYS_PACKAGE }} package", and once here in the context of # running the packacking integration tests. We should run the packaging integration tests for both CPU # architectures (instead of only amd64), but ideally only build each combination of CPU arch & SYS_PACKAGE once. - - name: Run packaging integration tests for ${{ matrix.SYS_PACKAGE }}/${{ matrix.lang }} - run: make packaging-integration-test-${{ matrix.SYS_PACKAGE }}-${{ matrix.lang }} + - name: Run packaging integration tests for ${{ matrix.SYS_PACKAGE }}/${{ matrix.lang }}/${{ matrix.arch }} + run: ARCH=${{ matrix.arch }} make packaging-integration-test-${{ matrix.SYS_PACKAGE }}-${{ matrix.lang }} publish-stable: runs-on: ubuntu-24.04 diff --git a/packaging/tests/rpm/dotnet/run.sh b/packaging/tests/rpm/dotnet/run.sh index 7f6a4d3..a88dc08 100755 --- a/packaging/tests/rpm/dotnet/run.sh +++ b/packaging/tests/rpm/dotnet/run.sh @@ -5,8 +5,10 @@ set -euo pipefail arch="${ARCH:-amd64}" if [ "$arch" = arm64 ]; then docker_platform=linux/arm64 + rpm_arch=aarch64 elif [ "$arch" = amd64 ]; then docker_platform=linux/amd64 + rpm_arch=x86_64 else echo "The architecture $arch is not supported." exit 1 @@ -18,6 +20,7 @@ cd "$SCRIPT_DIR/../../../.." docker build \ --platform "$docker_platform" \ --build-arg "ARCH=$arch" \ + --build-arg "RPM_ARCH=$rpm_arch" \ -t "instrumentation-dotnet-$arch" \ -f packaging/tests/rpm/dotnet/Dockerfile \ . diff --git a/packaging/tests/rpm/nodejs/run.sh b/packaging/tests/rpm/nodejs/run.sh index 81b6a24..79fd9cf 100755 --- a/packaging/tests/rpm/nodejs/run.sh +++ b/packaging/tests/rpm/nodejs/run.sh @@ -5,8 +5,10 @@ set -euo pipefail arch="${ARCH:-amd64}" if [ "$arch" = arm64 ]; then docker_platform=linux/arm64 + rpm_arch=aarch64 elif [ "$arch" = amd64 ]; then docker_platform=linux/amd64 + rpm_arch=x86_64 else echo "The architecture $arch is not supported." exit 1 @@ -18,6 +20,7 @@ cd "$SCRIPT_DIR/../../../.." docker build \ --platform "$docker_platform" \ --build-arg "ARCH=$arch" \ + --build-arg "RPM_ARCH=$rpm_arch" \ -t "instrumentation-nodejs-$arch" \ -f packaging/tests/rpm/nodejs/Dockerfile \ .