mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
5d2e5218f6
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.
94 lines
3.4 KiB
YAML
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
|