name: Test on: - push jobs: test-cruby-linux: strategy: fail-fast: false matrix: os: [ubuntu-24.04] ruby: ["2.5", "2.6", "2.7", "3.0", "3.1", "3.2", "3.3"] arch: [amd64, arm64] libc: [gnu, musl] include: - arch: amd64 platform: x86_64-linux - arch: arm64 platform: aarch64-linux name: Test (Ruby ${{ matrix.ruby }}, ${{ matrix.arch }}, ${{ matrix.libc }}) runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Build docker image id: build-image uses: ./.github/actions/docker-build-ruby with: ruby-version: ${{ matrix.ruby }} arch: ${{ matrix.arch }} libc: ${{ matrix.libc }} - name: Bundle install run: ${{ steps.build-image.outputs.run-cmd }} bundle install - name: Fetch binary library run: ${{ steps.build-image.outputs.run-cmd }} bundle exec rake fetch[${{ matrix.platform }}] - name: Extract binary library run: ${{ steps.build-image.outputs.run-cmd }} bundle exec rake extract[${{ matrix.platform }}] - name: Run specs run: ${{ steps.build-image.outputs.run-cmd }} bundle exec rake spec test-jruby-linux: strategy: fail-fast: false matrix: os: [ubuntu-24.04] jruby: ["9.3", "9.4"] arch: [amd64, arm64] include: - arch: amd64 platform: x86_64-linux - arch: arm64 platform: aarch64-linux name: Test (Jruby ${{ matrix.jruby }}, ${{ matrix.arch }}) runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Build docker image id: build-image uses: ./.github/actions/docker-build-ruby with: ruby-version: ${{ matrix.jruby }} jruby: true arch: ${{ matrix.arch }} libc: gnu - name: Bundle install run: ${{ steps.build-image.outputs.run-cmd }} bundle install - name: Fetch binary library run: ${{ steps.build-image.outputs.run-cmd }} bundle exec rake fetch[${{ matrix.platform }}] - name: Extract binary library run: ${{ steps.build-image.outputs.run-cmd }} bundle exec rake extract[${{ matrix.platform }}] - name: Run specs run: ${{ steps.build-image.outputs.run-cmd }} bundle exec rake spec test-darwin: strategy: fail-fast: false matrix: os: [macos-15, macos-15-large] include: - os: macos-15 platform: arm64-darwin - os: macos-15-large platform: x86_64-darwin name: Test (${{ matrix.os }}) runs-on: ${{ matrix.os }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout uses: actions/checkout@v4 - name: Bundle run: bundle install - name: Fetch binary library run: bundle exec rake fetch[${{ matrix.platform }}] - name: Extract binary library run: bundle exec rake extract[${{ matrix.platform }}] - name: Run specs run: bundle exec rake spec