Make something JIT'd to increase executable heap size #138
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" | |
- "macos-12" | |
- "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" | |
- "macos-12" | |
ruby: | |
- "ruby-3.0" | |
- "ruby-3.1" | |
- "ruby-3.2" | |
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" | |
- "3.1" | |
- "3.2" | |
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 |