From 0c587e5cfdd301981d7610c72abf369bfab1403e Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 28 Oct 2021 18:18:43 +0900 Subject: [PATCH] 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. --- .github/workflows/macos.yml | 8 +++- .github/workflows/yjit-macos.yml | 80 -------------------------------- 2 files changed, 7 insertions(+), 81 deletions(-) delete mode 100644 .github/workflows/yjit-macos.yml diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index eb04b82b569953..7b89d6fbb3938f 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: ${{ matrix.test_task == 'check' && 15 || 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 600e93b986005e..00000000000000 --- 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