-
Notifications
You must be signed in to change notification settings - Fork 0
71 lines (64 loc) · 2.3 KB
/
ci-macos.yml
File metadata and controls
71 lines (64 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
name: CI macOS
# Targeted macOS workflow: runs only when a PR or push touches the
# memory-sampler runtime, since macOS minutes on GitHub-hosted runners
# are ~10× the price of Linux ones. The path filter keeps the cost ≈ 0
# for the typical PR while still catching regressions in the sampler.
#
# Linux/Windows coverage stays in ci.yml. The release workflow has its
# own macOS leg (release.yml, test_rc matrix) for the per-rc smoke
# against the compiled .phar.
on:
push:
branches-ignore: [ rc** ]
paths:
- 'src/Execution/Memory/**'
- 'src/Execution/FlowMemoryHandler.php'
- 'tests/Unit/Execution/Memory/**'
- '.github/workflows/ci-macos.yml'
pull_request:
branches-ignore: [ master ]
paths:
- 'src/Execution/Memory/**'
- 'src/Execution/FlowMemoryHandler.php'
- 'tests/Unit/Execution/Memory/**'
- '.github/workflows/ci-macos.yml'
jobs:
macos:
name: macOS sampler (PHP ${{ matrix.php }})
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.5']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ':opcache, fileinfo'
ini-values: 'post_max_size=256M'
coverage: none
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ runner.os }}-
- name: Install dependencies
run: |
chmod -R +x tools/*
tools/composer install --prefer-dist --no-progress
# Real ps invocation against a live PHP child — proves the macOS
# parser handles the actual `ps -o pid=,ppid=,rss= -ax` output.
# The end-to-end smoke (flow qa --stats observing a real peak)
# has moved to ci-features.yml where it runs cross-OS.
- name: Run @group macos integration tests
run: php vendor/bin/phpunit --group macos