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/macos.yml
Nobuyoshi Nakada 92ad520ad0 Merge macOS CIs to reduce concurrency
On GitHub Actions, the macOS runners seem much more expensive than
Ubuntu, and its limit is the most significant bottlenecks for our
CIs.  As the "check" tasks usually finish 3 or 4 times faster than
"test-bundler-parallel", it will be balanced by running all three
"check" tasks sequentially.
2021-10-29 10:57:02 +09:00

79 lines
2.6 KiB
YAML

name: macOS
on:
push:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
jobs:
make:
strategy:
matrix:
os: [macos-10.15, macos-11]
test_task: [ "check", "test-bundler-parallel" ] #, "test-bundled-gems" ] matrix tests has unknown issues
fail-fast: false
env:
RUBY_TESTOPTS: '-q --tty=no'
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
runs-on: ${{ matrix.os }}
steps:
- run: mkdir build
working-directory:
- name: git config
run: |
git config --global advice.detachedHead 0
git config --global init.defaultBranch garbage
- uses: actions/checkout@v2
with:
path: src
- name: Install libraries
run: |
brew upgrade
brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline
working-directory: src
- name: Set ENV
run: |
echo "MAKEFLAGS=-j$((1 + $(sysctl -n hw.activecpu)))" >> $GITHUB_ENV
- run: ./autogen.sh
working-directory: src
- name: Run configure
run: ../src/configure -C --disable-install-doc --with-openssl-dir=$(brew --prefix openssl@1.1) --with-readline-dir=$(brew --prefix readline)
- run: make incs
- run: make
- run: make leaked-globals
if: ${{ matrix.test_task == 'check' }}
- run: make prepare-gems
if: ${{ matrix.test_task == 'check' }}
- run: make -s ${{ matrix.test_task }}
timeout-minutes: 40
env:
TEST_BUNDLED_GEMS_ALLOW_FAILURES: "rexml"
- run: make -s check RUN_OPTS="--yjit"
timeout-minutes: 60
if: ${{ matrix.test_task == 'check' }}
- run: make -s check RUN_OPTS="--yjit --yjit-call-threshold=1 --yjit-max-versions=1"
timeout-minutes: 60
if: ${{ matrix.test_task == 'check' }}
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
"ci": "GitHub Actions",
"env": "${{ github.workflow }} / ${{ matrix.test_task }}",
"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