Skip to content

CI: Add macos-{13,14} and as well as Ruby 3.3 to matrix build #140

CI: Add macos-{13,14} and as well as Ruby 3.3 to matrix build

CI: Add macos-{13,14} and as well as Ruby 3.3 to matrix build #140

Workflow file for this run

name: Tests
on:
pull_request:
push:
branches:
- main
jobs:
# test-truffleruby:
# strategy:
# fail-fast: false
# matrix:
# os:
# - "macos-11" # deprecated by GitHub
# - "macos-12"
# - "macos-13"
# - "macos-14" # arm64
# - "ubuntu-20.04"
# ruby:
# - "truffleruby+graalvm"
# name: ${{ matrix.os }} - ${{ matrix.ruby }}
# runs-on: ${{ matrix.os }}
# env:
# TRUFFLERUBYOPT: "--jvm --polyglot"
# steps:
# - uses: actions/checkout@v4
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: ${{ matrix.ruby }}
# bundler: latest # to get this fix: https://github.com/rubygems/rubygems/issues/6165
# bundler-cache: true
# - name: Install GraalVM JS component
# run: truffleruby-polyglot-get js
# - name: Compile
# run: bundle exec rake compile
# - name: Test
# run: bundle exec rake test
test-darwin:
strategy:
fail-fast: false
matrix:
os:
# - "macos-11" # deprecated by GitHub
# - "macos-12"
# - "macos-13"
# - "macos-14" # arm64
- "macos-14-large"
ruby:
- "ruby-3.0" # EOL as of 2024-04-23
- "ruby-3.1"
- "ruby-3.2"
- "ruby-3.3"
name: ${{ matrix.os }} - ${{ matrix.ruby }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Compile
run: bundle exec rake compile
- name: Test
run: bundle exec rake test
# test-linux:
# strategy:
# fail-fast: false
# matrix:
# ruby:
# - "3.0" # EOL as of 2024-04-23
# - "3.1"
# - "3.2"
# - "3.3"
# platform:
# - "amd64"
# - "arm64"
# libc:
# - "gnu"
# - "musl"
# name: linux-${{ matrix.platform }} - ruby-${{ matrix.ruby }} - ${{ matrix.libc }}
# runs-on: ubuntu-20.04
# steps:
# - name: Enable ${{ matrix.platform }} platform
# id: qemu
# if: ${{ matrix.platform != 'amd64' }}
# run: |
# docker run --privileged --rm tonistiigi/binfmt:latest --install ${{ matrix.platform }} | tee platforms.json
# - name: Start container
# id: container
# run: |
# case ${{ matrix.libc }} in
# gnu)
# echo 'ruby:${{ matrix.ruby }}'
# ;;
# musl)
# echo 'ruby:${{ matrix.ruby }}-alpine'
# ;;
# esac > container_image
# echo "image=$(cat container_image)" >> $GITHUB_OUTPUT
# docker run --rm -d -v "${PWD}":"${PWD}" -w "${PWD}" --platform linux/${{ matrix.platform }} $(cat container_image) /bin/sleep 64d | tee container_id
# docker exec -w "${PWD}" $(cat container_id) uname -a
# echo "container_id=$(cat container_id)" >> $GITHUB_OUTPUT
# - name: Install Alpine system dependencies
# if: ${{ matrix.libc == 'musl' }}
# run: docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} apk add --no-cache build-base bash git
# - name: Checkout
# uses: actions/checkout@v4
# - name: Update Rubygems
# run: docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} gem update --system
# - name: Bundle
# run: docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} bundle install
# - name: Compile
# run: docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} bundle exec rake compile
# - name: Test
# run: docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} bundle exec rake test