mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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.
96 lines
3.1 KiB
YAML
96 lines
3.1 KiB
YAML
name: MJIT
|
|
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" ] # to make job names consistent
|
|
jit_opts: [ "--jit", "--jit-wait" ]
|
|
fail-fast: false
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
TESTOPTS: '-q --tty=no'
|
|
RUN_OPTS: '--disable-gems ${{ matrix.jit_opts }} --jit-debug=-ggdb3'
|
|
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
|
|
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 cppflags=-DVM_CHECK_MODE
|
|
- run: make incs
|
|
- run: make
|
|
- run: sudo make -s install
|
|
- run: sudo apt-get install gdb # used by test / test-all failure
|
|
- name: Run test
|
|
run: |
|
|
ulimit -c unlimited
|
|
make -s test RUN_OPTS="$RUN_OPTS"
|
|
timeout-minutes: 60
|
|
- name: Run test-all
|
|
run: |
|
|
ulimit -c unlimited
|
|
make -s test-all RUN_OPTS="$RUN_OPTS"
|
|
timeout-minutes: 60
|
|
- name: Run test-spec
|
|
run: |
|
|
ulimit -c unlimited
|
|
make -s test-spec RUN_OPTS="$RUN_OPTS"
|
|
timeout-minutes: 60
|
|
- uses: k0kubun/action-slack@v2.0.0
|
|
with:
|
|
payload: |
|
|
{
|
|
"ci": "GitHub Actions",
|
|
"env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.jit_opts }}",
|
|
"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
|