diff --git a/.github/workflows/binary-gems.yml b/.github/workflows/binary-gems.yml index b15849b4e..614c30c17 100644 --- a/.github/workflows/binary-gems.yml +++ b/.github/workflows/binary-gems.yml @@ -28,7 +28,9 @@ jobs: - platform: "x64-mingw32" - platform: "x86-mingw32" - platform: "x86_64-linux" + - platform: "x86_64-linux-musl" - platform: "aarch64-linux" + - platform: "aarch64-linux-musl" - platform: "x86_64-darwin" - platform: "arm64-darwin" steps: @@ -170,6 +172,10 @@ jobs: image_platform: linux/x86_64 gem_platform: x86_64-linux dockerfile: alpine + - from_image: alpine + image_platform: linux/x86_64 + gem_platform: x86_64-linux-musl + dockerfile: alpine runs-on: ubuntu-latest steps: @@ -181,7 +187,7 @@ jobs: - name: Build image and Run tests run: | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker build --rm --platform ${{matrix.image_platform}} --build-arg from_image=${{matrix.from_image}} -t ruby-test -f spec/env/Dockerfile.${{matrix.dockerfile}} . + docker build --rm --platform ${{matrix.image_platform}} --build-arg from_image=${{matrix.from_image}} --build-arg gem_platform=${{matrix.gem_platform}} -t ruby-test -f spec/env/Dockerfile.${{matrix.dockerfile}} . docker run --rm -t --network=host -v `pwd`:/build ruby-test job_binary_yugabyte: diff --git a/Rakefile b/Rakefile index 823e36efc..f629bddc6 100644 --- a/Rakefile +++ b/Rakefile @@ -50,7 +50,9 @@ CrossLibraries = [ ['x86-mingw32', 'mingw', 'i686-w64-mingw32'], ['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'], ['x86_64-linux', 'linux-x86_64', 'x86_64-linux-gnu'], + ['x86_64-linux-musl', 'linux-x86_64', 'x86_64-unknown-linux-musl'], ['aarch64-linux', 'linux-aarch64', 'aarch64-linux-gnu'], + ['aarch64-linux-musl', 'linux-aarch64', 'aarch64-linux-musl'], ['x86_64-darwin', 'darwin64-x86_64', 'x86_64-apple-darwin'], ['arm64-darwin', 'darwin64-arm64', 'arm64-apple-darwin'], ].map do |platform, openssl_config, toolchain| diff --git a/misc/yugabyte/docker-compose.yml b/misc/yugabyte/docker-compose.yml index 03d4560cc..eb523e233 100644 --- a/misc/yugabyte/docker-compose.yml +++ b/misc/yugabyte/docker-compose.yml @@ -14,7 +14,7 @@ services: start_period: 10s pg: - image: ruby:3.0 + image: ruby:3.1 working_dir: /app volumes: - .:/app diff --git a/spec/env/Dockerfile.alpine b/spec/env/Dockerfile.alpine index 576cf7528..659e017d6 100644 --- a/spec/env/Dockerfile.alpine +++ b/spec/env/Dockerfile.alpine @@ -1,8 +1,11 @@ ARG from_image +ARG gem_platform FROM ${from_image} RUN uname -a -RUN apk add ruby ruby-rake ruby-dev git gcc make musl-dev gcompat postgresql16 sudo +RUN apk add ruby ruby-rake ruby-dev git gcc make musl-dev postgresql16 sudo +# Conditionally install gcompat only for x86_64-linux (not x86_64-linux-musl) +RUN if [ "$gem_platform" = "x86_64-linux" ]; then apk add gcompat; fi RUN git config --global --add safe.directory /build RUN ruby --version