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.
This commit is contained in:
Nobuyoshi Nakada 2021-10-28 18:18:43 +09:00
Родитель 96648c5093
Коммит 92ad520ad0
2 изменённых файлов: 7 добавлений и 81 удалений

8
.github/workflows/macos.yml поставляемый
Просмотреть файл

@ -19,6 +19,7 @@ jobs:
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:
@ -52,8 +53,13 @@ jobs:
- run: make -s ${{ matrix.test_task }}
timeout-minutes: 40
env:
RUBY_TESTOPTS: "-q --tty=no"
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: |

80
.github/workflows/yjit-macos.yml поставляемый
Просмотреть файл

@ -1,80 +0,0 @@
name: YJIT macOS
on:
push:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
jobs:
make:
runs-on: macos-latest
strategy:
matrix:
test_task: [ "check" ] #, "test-bundler-parallel" ] #, "test-bundled-gems" ]
yjit_opts: [
"--yjit",
"--yjit --yjit-call-threshold=1 --yjit-max-versions=1",
# "--yjit --yjit-call-threshold=1",
# "--yjit --yjit-call-threshold=2"
]
fail-fast: false
env:
TESTOPTS: '-q --tty=no'
RUN_OPTS: '--disable-gems ${{ matrix.yjit_opts }}'
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
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 }} RUN_OPTS="$RUN_OPTS"
timeout-minutes: 60
env:
RUBY_TESTOPTS: "-q --tty=no"
TEST_BUNDLED_GEMS_ALLOW_FAILURES: "rexml"
- 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