CI: Add macos-{13,14} and as well as Ruby 3.3 to matrix build #141
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
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 |