1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/.github/workflows/yjit-ubuntu.yml
Alan Wu 5d2e5218f6 Use env var to turn on YJIT for test-bundled-gems
tool/test-bundled-gems.rb use sub processes for testing bundled gems and
doesn't support RUN_OPTS. We weren't enabling YJIT for these tests.
Use an include config with RUBY_YJIT_ENABLE to turn on YJIT for these
tests.

Note that we only test with the default call threshold in this setup,
which is the same as before YJIT was off by defauft. The
--yjit-call-threshold command line was never passed to the tests.
2021-10-20 18:19:43 -04:00

94 lines
3.4 KiB
YAML

name: YJIT Ubuntu
on: [push, pull_request]
jobs:
make:
strategy:
matrix:
test_task: ["check"] # "test-bundler-parallel",
os:
- ubuntu-20.04
# - ubuntu-18.04
yjit_opts: [
"--yjit",
"--yjit --yjit-call-threshold=1 --yjit-max-versions=1",
"--yjit --yjit-call-threshold=1",
"--yjit --yjit-call-threshold=2"
]
configure: ["", "cppflags=-DRUBY_DEBUG"]
include:
- test_task: "test-all TESTS=--repeat-count=2"
os: ubuntu-20.04
configure: ""
yjit_enable_env: RUBY_YJIT_ENABLE
- test_task: "test-bundled-gems"
os: ubuntu-20.04
configure: "cppflags=-DRUBY_DEBUG"
yjit_enable_env: RUBY_YJIT_ENABLE
fail-fast: false
env:
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
RUN_OPTS: ${{ matrix.yjit_opts }}
RUBY_DEBUG: ci
runs-on: ${{ matrix.os }}
steps:
- run: mkdir build
working-directory:
- name: Install libraries
run: |
set -x
sudo apt-get update -q || :
sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
- name: git config
run: |
git config --global advice.detachedHead 0
git config --global init.defaultBranch garbage
- uses: actions/checkout@v2
with:
path: src
- name: Fixed world writable dirs
run: |
chmod -v go-w $HOME $HOME/.config
sudo chmod -R go-w /usr/share
sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- name: Set ENV
run: |
echo "JOBS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- run: ./autogen.sh
working-directory: src
- name: Run configure
run: ../src/configure -C --disable-install-doc ${{ matrix.configure }}
- run: make $JOBS incs
- run: make $JOBS
- run: make leaked-globals
if: matrix.test_task == 'check'
- run: make prepare-gems
if: ${{ matrix.test_task == 'check' }}
- name: Create dummy files in build dir
run: |
./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
if: ${{ matrix.test_task == 'check' }}
- name: Enable YJIT through ENV
run: echo "RUBY_YJIT_ENABLE=1" >> $GITHUB_ENV
if: ${{ matrix.yjit_enable_env }}
- run: make $JOBS -s ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS"
timeout-minutes: 60
env:
RUBY_TESTOPTS: "-q --tty=no"
TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
"ci": "GitHub Actions",
"env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"commit": "${{ github.sha }}",
"branch": "${{ github.ref }}".split('/').reverse()[0]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
if: ${{ failure() && github.event_name == 'push' }}
defaults:
run:
working-directory: build