mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
3f1dcd7fff
Cache downloaded external libraries/gems, which are expected not changed so frequently. Also sometimes downloading from zlib returns the current time as the date header in unexpected format, and checksums mismatch at that time.
111 lines
3.8 KiB
YAML
111 lines
3.8 KiB
YAML
name: YJIT Ubuntu
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- 'doc/**'
|
|
- '**.md'
|
|
- '**.rdoc'
|
|
pull_request:
|
|
paths-ignore:
|
|
- 'doc/**'
|
|
- '**.md'
|
|
- '**.rdoc'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
|
|
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
|
|
|
|
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",
|
|
]
|
|
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
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: src/.downloaded-cache
|
|
key: downloaded-cache
|
|
- 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 "GNUMAKEFLAGS=-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 incs
|
|
- run: make
|
|
- 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 -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
|