Currently they all run `npx envinfo` without pinning the version. This can be a supply-chain risk. Signed-off-by: Joyee Cheung <joyeec9h3@gmail.com> PR-URL: https://github.com/nodejs/node/pull/64117 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
142 lines
4.5 KiB
YAML
142 lines
4.5 KiB
YAML
name: Test macOS
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '**.nix'
|
|
- eslint.config.mjs
|
|
- '**/eslint.config_partial.mjs'
|
|
- android-configure
|
|
- android-configure.py
|
|
- android-patches/**
|
|
- benchmarks/**
|
|
- codecov.yml
|
|
- doc/**
|
|
- pyproject.yml
|
|
- tsconfig.json
|
|
- test/internet/**
|
|
- tools/actions/**
|
|
- tools/dep_updaters/**
|
|
- tools/doc/**
|
|
- tools/eslint-rules/**
|
|
- tools/eslint/**
|
|
- tools/lint-md/**
|
|
- typings/**
|
|
- vcbuild.bat
|
|
- .**
|
|
- '!.github/workflows/test-macos.yml'
|
|
push:
|
|
branches:
|
|
- main
|
|
- canary
|
|
- v[0-9]+.x-staging
|
|
- v[0-9]+.x
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '**.nix'
|
|
- eslint.config.mjs
|
|
- '**/eslint.config_partial.mjs'
|
|
- android-configure
|
|
- android-configure.py
|
|
- android-patches/**
|
|
- benchmarks/**
|
|
- codecov.yml
|
|
- doc/**
|
|
- pyproject.yml
|
|
- tsconfig.json
|
|
- test/internet/**
|
|
- tools/actions/**
|
|
- tools/dep_updaters/**
|
|
- tools/doc/**
|
|
- tools/eslint-rules/**
|
|
- tools/eslint/**
|
|
- tools/lint-md/**
|
|
- typings/**
|
|
- vcbuild.bat
|
|
- .**
|
|
- '!.github/workflows/test-macos.yml'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
PYTHON_VERSION: '3.14'
|
|
XCODE_VERSION: '16.4'
|
|
FLAKY_TESTS: keep_retrying
|
|
RUSTC_VERSION: '1.82'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test-macOS:
|
|
if: github.event.pull_request.draft == false
|
|
strategy:
|
|
fail-fast: false
|
|
runs-on: macos-15
|
|
env:
|
|
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} gcc
|
|
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} g++
|
|
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
|
|
SCCACHE_IDLE_TIMEOUT: '0'
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
persist-credentials: false
|
|
path: node
|
|
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
allow-prereleases: true
|
|
- name: Set up Xcode ${{ env.XCODE_VERSION }}
|
|
run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app
|
|
- name: Install Rust ${{ env.RUSTC_VERSION }}
|
|
run: |
|
|
rustup override set "$RUSTC_VERSION"
|
|
rustup --version
|
|
- name: Set up sccache
|
|
if: github.base_ref == 'main' || github.ref_name == 'main'
|
|
uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
|
|
with:
|
|
version: v0.16.0
|
|
- name: Environment Information
|
|
run: npx envinfo@7.21.0
|
|
# 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 --v8-enable-temporal-support"
|
|
- name: Free Space After Build
|
|
run: df -h
|
|
- name: Test
|
|
run: make -C node test-ci -j1 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?'åß∂ƒ©∆¬…`
|