/
niceSOFT
/
numpy
Обзор
Документация
Войти
/
niceSOFT
/
numpy
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/macos.yml
158 строк
5 KB
Charles Harris
Merge pull request #32140 from rgommers/hypothesis-optional-test-dep
31 июл 2026, 00:16
Не верифицирован
31 июл 2026, 00:16
e189711
Код
Авторство
О чём код?
name: macOS tests on: pull_request: branches: - main - maintenance/** paths-ignore: - '**.pyi' - '**.md' - '**.rst' - 'tools/stubtest/**' permissions: contents: read # to fetch code (actions/checkout) env: CCACHE_DIR: "${{ github.workspace }}/.ccache" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: x86_conda: name: macOS x86-64 conda # To enable this workflow on a fork, comment out: if: github.repository == 'numpy/numpy' runs-on: macos-15-intel strategy: fail-fast: false matrix: python-version: ["3.12"] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-tags: true persist-credentials: false - name: Prepare cache dirs and timestamps id: prep-ccache shell: bash -l {0} run: | mkdir -p "${CCACHE_DIR}" echo "dir=$CCACHE_DIR" >> $GITHUB_OUTPUT NOW=$(date -u +"%F-%T") echo "timestamp=${NOW}" >> $GITHUB_OUTPUT echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT - name: Setup compiler cache uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 id: cache-ccache with: path: ${{ steps.prep-ccache.outputs.dir }} key: ${{ github.workflow }}-${{ matrix.python-version }}-ccache-macos-${{ steps.prep-ccache.outputs.timestamp }} restore-keys: | ${{ github.workflow }}-${{ matrix.python-version }}-ccache-macos- - name: Setup Miniforge uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1 with: python-version: ${{ matrix.python-version }} channels: conda-forge channel-priority: true activate-environment: numpy-dev use-only-tar-bz2: false miniforge-variant: Miniforge3 miniforge-version: latest use-mamba: true # Updates if `environment.yml` or the date changes. The latter is needed to # ensure we re-solve once a day (since we don't lock versions). Could be # replaced by a conda-lock based approach in the future. - name: Cache conda environment uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 env: # Increase this value to reset cache if environment.yml has not changed CACHE_NUMBER: 1 with: path: ${{ env.CONDA }}/envs/numpy-dev key: ${{ runner.os }}--${{ steps.prep-ccache.outputs.today }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment.yml') }} id: envcache - name: Update Conda Environment run: mamba env update -n numpy-dev -f environment.yml if: steps.envcache.outputs.cache-hit != 'true' - name: Build and Install NumPy shell: bash -l {0} run: | conda activate numpy-dev CC="ccache $CC" spin build -j2 -- -Dallow-noblas=false - name: Run test suite (full) shell: bash -l {0} run: | conda activate numpy-dev export OMP_NUM_THREADS=2 spin test -j2 -m full - name: Ccache statistics shell: bash -l {0} run: | conda activate numpy-dev ccache -s accelerate: name: Accelerate - ${{ matrix.build_runner[1] }} - ${{ matrix.version }} # To enable this workflow on a fork, comment out: if: github.repository == 'numpy/numpy' runs-on: ${{ matrix.build_runner[0] }} strategy: fail-fast: false matrix: build_runner: - [ macos-15-intel, "macos_x86_64" ] - [ macos-14, "macos_arm64" ] version: ["3.12", "3.15t-dev"] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-tags: true persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.version }} - name: Install dependencies run: | pip install -r requirements/build_requirements.txt -r requirements/test_requirements.txt -r requirements/hypothesis_requirements.txt - name: Build against Accelerate (LP64) run: spin build -- -Ddisable-optimization=true -Dallow-noblas=false - name: Test (linalg only) run: spin test -j2 -- numpy/linalg --timeout=600 --durations=10 - name: Build NumPy against Accelerate (ILP64) run: | rm -r build build-install spin build -- -Duse-ilp64=true -Ddisable-optimization=true -Dallow-noblas=false - name: Test (fast tests) if: ${{ matrix.version != '3.14t' || matrix.build_runner[0] != 'macos-14' }} run: spin test -j2 -- --timeout=600 --durations=10 - name: Test in multiple threads if: ${{ matrix.version == '3.14t' && matrix.build_runner[0] == 'macos-14' }} run: | pip install pytest-run-parallel==0.8.2 spin test -p 4 -- -sv --timeout=600 --durations=10