Handle undefined from JSON.stringify (#321) #184
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-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 | |
- name: Build & Install gem | |
run: | | |
bundle exec rake build | |
gem uninstall --all --force mini_racer | |
gem install pkg/*.gem | |
- name: Smoke Test installed gem | |
run: ruby test/smoke/minimal.rb | |
test-darwin: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macos-12" | |
- "macos-13" | |
- "macos-14" # arm64 | |
ruby: | |
- "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 | |
- name: Build & Install gem | |
run: | | |
bundle exec rake build | |
gem uninstall --all --force mini_racer | |
gem install pkg/*.gem | |
- name: Smoke Test installed gem | |
run: ruby test/smoke/minimal.rb | |
test-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: | |
- "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 | |
- name: Build & Install gem | |
run: | | |
docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} bundle exec rake build | |
docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} gem uninstall --all --force mini_racer | |
docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} gem install pkg/*.gem | |
- name: Smoke Test installed gem | |
run: docker exec -w "${PWD}" ${{ steps.container.outputs.container_id }} ruby test/smoke/minimal.rb |