| name: Test macOS |
| |
| on: |
| pull_request: |
| types: [opened, synchronize, reopened, ready_for_review] |
| paths-ignore: |
| - .mailmap |
| - '**.md' |
| - AUTHORS |
| - doc/** |
| - .github/** |
| - '!.github/workflows/test-macos.yml' |
| push: |
| branches: |
| - main |
| - canary |
| - v[0-9]+.x-staging |
| - v[0-9]+.x |
| paths-ignore: |
| - .mailmap |
| - '**.md' |
| - AUTHORS |
| - doc/** |
| - .github/** |
| - '!.github/workflows/test-macos.yml' |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |
| cancel-in-progress: true |
| |
| env: |
| PYTHON_VERSION: '3.12' |
| XCODE_VERSION: '16.1' |
| FLAKY_TESTS: keep_retrying |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| test-macOS: |
| if: github.event.pull_request.draft == false |
| strategy: |
| fail-fast: false |
| runs-on: macos-14 |
| env: |
| CC: sccache gcc |
| CXX: sccache g++ |
| SCCACHE_GHA_ENABLED: 'true' |
| steps: |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
| with: |
| persist-credentials: false |
| path: node |
| - name: Set up Python ${{ env.PYTHON_VERSION }} |
| uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 |
| with: |
| python-version: ${{ env.PYTHON_VERSION }} |
| - name: Set up Xcode ${{ env.XCODE_VERSION }} |
| run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app |
| - name: Set up sccache |
| uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 |
| with: |
| version: v0.10.0 |
| - name: Environment Information |
| run: npx envinfo |
| # The `npm ci` for this step fails a lot as part of the Test step. Run it |
| # now so that we don't have to wait 2 hours for the Build step to pass |
| # first before that failure happens. (And if there's something about |
| # `make run-ci -j3` that is causing the failure and the failure doesn't |
| # happen anymore running this step here first, that's also useful |
| # information.) |
| - name: tools/doc/node_modules workaround |
| run: make -C node tools/doc/node_modules |
| # This is needed due to https://github.com/nodejs/build/issues/3878 |
| - name: Cleanup |
| run: | |
| echo "::group::Free space before cleanup" |
| df -h |
| echo "::endgroup::" |
| echo "::group::Cleaned Files" |
| |
| sudo rm -rf /Users/runner/Library/Android/sdk |
| |
| echo "::endgroup::" |
| echo "::group::Free space after cleanup" |
| df -h |
| echo "::endgroup::" |
| - name: Build |
| run: make -C node build-ci -j$(getconf _NPROCESSORS_ONLN) V=1 CONFIG_FLAGS="--error-on-warn" |
| - name: Free Space After Build |
| run: df -h |
| - name: Test |
| run: make -C node run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" |
| - name: Re-run test in a folder whose name contains unusual chars |
| run: | |
| mv node "$DIR" |
| cd "$DIR" |
| ./tools/test.py --flaky-tests keep_retrying -p actions -j 4 |
| env: |
| DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…` |