summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-10-28 18:18:43 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-10-29 10:57:02 +0900
commit92ad520ad0372ad64ece6af6bbb6823e629c5d5b (patch)
treede938a5a0e68ca894facc29fb6eba9652f8cf8c6 /.github/workflows
parent96648c509353bb5972bb3a4866ab38e0143e9886 (diff)
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.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5046
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/macos.yml8
-rw-r--r--.github/workflows/yjit-macos.yml80
2 files changed, 7 insertions, 81 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 1b07dd82ec..ab6f47bd26 100644
--- a/.github/workflows/macos.yml
+++ b/.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: |
diff --git a/.github/workflows/yjit-macos.yml b/.github/workflows/yjit-macos.yml
deleted file mode 100644
index 600e93b986..0000000000
--- a/.github/workflows/yjit-macos.yml
+++ /dev/null
@@ -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