diff options
Diffstat (limited to '.github/workflows/macos.yml')
| -rw-r--r-- | .github/workflows/macos.yml | 83 |
1 files changed, 53 insertions, 30 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index c948977c3f..4f1807121f 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -26,18 +26,29 @@ jobs: matrix: include: - test_task: check - os: macos-14 + os: macos-26 + - test_task: check + os: macos-15 + configure_args: '--with-gcc=gcc-14' + - test_task: check + os: macos-26 + configure_args: '--with-jemalloc --with-opt-dir=$(brew --prefix jemalloc)' + - test_task: check + os: macos-26 + configure_args: '--with-gmp' - test_task: test-all test_opts: --repeat-count=2 - os: macos-14 + os: macos-26 - test_task: test-bundler-parallel - os: macos-14 + os: macos-26 - test_task: test-bundled-gems - os: macos-14 + os: macos-26 + - test_task: check + os: macos-15 - test_task: check - os: macos-12 + os: macos-15-intel - test_task: check - os: macos-13 + os: macos-14 fail-fast: false env: @@ -48,18 +59,17 @@ jobs: if: >- ${{!(false || contains(github.event.head_commit.message, '[DOC]') - || contains(github.event.head_commit.message, 'Document') || contains(github.event.pull_request.title, '[DOC]') - || contains(github.event.pull_request.title, 'Document') - || contains(github.event.pull_request.labels.*.name, 'Document') - || (github.event_name == 'push' && github.actor == 'dependabot[bot]') + || contains(github.event.pull_request.labels.*.name, 'Documentation') + || (github.event.pull_request.user.login == 'dependabot[bot]') )}} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: sparse-checkout-cone-mode: false sparse-checkout: /.github + persist-credentials: false - name: Install libraries uses: ./.github/actions/setup/macos @@ -80,14 +90,28 @@ jobs: sudo sysctl -w kern.coredump=1 sudo chmod -R +rwx /cores/ + - name: Delete unused SDKs + # To free up disk space to not run out during the run + run: | + sudo rm -rf ~/.dotnet + sudo rm -rf /Library/Android + sudo rm -rf /Library/Developer/CoreSimulator + continue-on-error: true + - name: Run configure - run: ../src/configure -C --disable-install-doc ${ruby_configure_args} + run: ../src/configure -C --disable-install-doc ${ruby_configure_args} ${{ matrix.configure_args }} - run: make prepare-gems if: ${{ matrix.test_task == 'test-bundled-gems' }} - run: make + - run: make hello + + - name: runirb + run: | + echo IRB::VERSION | make runirb RUNOPT="-- -f" + - name: Set test options for skipped tests run: | set -x @@ -96,6 +120,7 @@ jobs: if: ${{ matrix.test_task == 'check' && matrix.skipped_tests }} - name: Set up Launchable + id: launchable uses: ./.github/actions/launchable/setup with: os: ${{ matrix.os }} @@ -104,6 +129,7 @@ jobs: builddir: build srcdir: src continue-on-error: true + timeout-minutes: 3 - name: Set extra test options run: | @@ -113,13 +139,18 @@ jobs: - name: make ${{ matrix.test_task }} run: | + test -n "${LAUNCHABLE_STDOUT}" && exec 1> >(tee "${LAUNCHABLE_STDOUT}") + test -n "${LAUNCHABLE_STDERR}" && exec 2> >(tee "${LAUNCHABLE_STDERR}") + ulimit -c unlimited make -s ${{ matrix.test_task }} ${TESTS:+TESTS="$TESTS"} - timeout-minutes: 60 + timeout-minutes: 90 env: RUBY_TESTOPTS: '-q --tty=no' TEST_BUNDLED_GEMS_ALLOW_FAILURES: '' PRECHECK_BUNDLED_GEMS: 'no' + LAUNCHABLE_STDOUT: ${{ steps.launchable.outputs.stdout_report_path }} + LAUNCHABLE_STDERR: ${{ steps.launchable.outputs.stderr_report_path }} - name: make skipped tests run: | @@ -131,32 +162,24 @@ jobs: if: ${{ matrix.test_task == 'check' && matrix.skipped_tests }} continue-on-error: ${{ matrix.continue-on-skipped_tests || false }} + - name: CAPI extensions + uses: ./.github/actions/capiext + with: + builddir: build + env: + RUBY_TESTOPTS: '-v --tty=no' + if: ${{ contains(matrix.extra_checks, 'capi') }} + - uses: ./.github/actions/slack with: label: ${{ matrix.os }} / ${{ matrix.test_task }} SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot if: ${{ failure() }} - - name: Resolve job ID - id: job_id - uses: actions/github-script@main - env: - matrix: ${{ toJson(matrix) }} - with: - script: | - const { data: workflow_run } = await github.rest.actions.listJobsForWorkflowRun({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: context.runId - }); - const matrix = JSON.parse(process.env.matrix); - const job_name = `${context.job}${matrix ? ` (${Object.values(matrix).join(", ")})` : ""}`; - return workflow_run.jobs.find((job) => job.name === job_name).id; - result: if: ${{ always() }} name: ${{ github.workflow }} result - runs-on: macos-latest + runs-on: ubuntu-latest needs: [make] steps: - run: exit 1 |
