Skip to content

Commit 686d5f6

Browse files
committed
+ Windows + MacOs2
1 parent c1c8402 commit 686d5f6

File tree

1 file changed

+89
-75
lines changed

1 file changed

+89
-75
lines changed

.github/workflows/build.yml

Lines changed: 89 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,9 @@ on:
77
branches: [main]
88

99
jobs:
10-
build:
11-
strategy:
12-
fail-fast: false
13-
matrix:
14-
os: [ubuntu-latest, windows-latest, macos-latest]
15-
include:
16-
- os: ubuntu-latest
17-
platform: linux
18-
- os: windows-latest
19-
platform: windows
20-
- os: macos-latest
21-
platform: macos
10+
build-ubuntu:
11+
runs-on: ubuntu-latest
2212

23-
runs-on: ${{ matrix.os }}
24-
2513
services:
2614
mysql:
2715
image: mysql:8.3
@@ -63,8 +51,7 @@ jobs:
6351
mkdir -p php-src/ext/async
6452
cp -r async/* php-src/ext/async/
6553
66-
- name: Install build dependencies (Ubuntu)
67-
if: matrix.os == 'ubuntu-latest'
54+
- name: Install build dependencies
6855
run: |
6956
sudo apt-get update
7057
sudo apt-get install -y \
@@ -76,32 +63,7 @@ jobs:
7663
firebird-dev \
7764
libuv1-dev
7865
79-
- name: Install build dependencies (Windows)
80-
if: matrix.os == 'windows-latest'
81-
run: |
82-
choco install -y visualstudio2022buildtools
83-
choco install -y git
84-
choco install -y cmake
85-
choco install -y vcpkg
86-
vcpkg install libuv:x64-windows
87-
vcpkg install openssl:x64-windows
88-
vcpkg install zlib:x64-windows
89-
vcpkg integrate install
90-
shell: cmd
91-
92-
- name: Install build dependencies (macOS)
93-
if: matrix.os == 'macos-latest'
94-
run: |
95-
brew install autoconf bison re2c
96-
brew install gmp icu4c tidyhtml5
97-
brew install libzip bzip2 sqlite oniguruma curl
98-
brew install libxml2 libxslt postgresql readline ldns libsodium
99-
brew install argon2 libuv openssl@3
100-
echo "PKG_CONFIG_PATH=$(brew --prefix openssl@3)/lib/pkgconfig:$(brew --prefix icu4c)/lib/pkgconfig:$(brew --prefix libxml2)/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
101-
echo "PATH=$(brew --prefix bison)/bin:$PATH" >> $GITHUB_ENV
102-
103-
- name: Configure PHP (Ubuntu)
104-
if: matrix.os == 'ubuntu-latest'
66+
- name: Configure PHP
10567
working-directory: php-src
10668
run: |
10769
./buildconf -f
@@ -155,6 +117,91 @@ jobs:
155117
--with-pdo-firebird \
156118
--enable-async
157119
120+
- name: Build PHP
121+
working-directory: php-src
122+
run: |
123+
make -j"$(nproc)"
124+
sudo make install
125+
sudo mkdir -p /etc/php.d
126+
sudo chmod 777 /etc/php.d
127+
{
128+
echo "opcache.enable_cli=1"
129+
echo "opcache.protect_memory=1"
130+
} > /etc/php.d/opcache.ini
131+
132+
- name: Run tests
133+
working-directory: php-src/ext/async
134+
run: |
135+
/usr/local/bin/php -v
136+
/usr/local/bin/php ../../run-tests.php \
137+
-d zend_extension=opcache.so \
138+
-d opcache.enable_cli=1 \
139+
-d opcache.jit_buffer_size=64M \
140+
-d opcache.jit=tracing \
141+
-d zend_test.observer.enabled=1 \
142+
-d zend_test.observer.show_output=0 \
143+
-P -q -x -j2 \
144+
-g FAIL,BORK,LEAK,XLEAK \
145+
--no-progress \
146+
--offline \
147+
--show-diff \
148+
--show-slow 1000 \
149+
--set-timeout 120 \
150+
--repeat 2
151+
152+
build-cross-platform:
153+
strategy:
154+
fail-fast: false
155+
matrix:
156+
os: [windows-latest, macos-latest]
157+
include:
158+
- os: windows-latest
159+
platform: windows
160+
- os: macos-latest
161+
platform: macos
162+
163+
runs-on: ${{ matrix.os }}
164+
165+
steps:
166+
- name: Checkout php-async repo
167+
uses: actions/checkout@v4
168+
with:
169+
path: async
170+
171+
- name: Clone php-src (true-async-stable)
172+
run: |
173+
git clone --depth=1 --branch=true-async-stable https://github.com/true-async/php-src php-src
174+
175+
- name: Copy php-async extension into php-src
176+
run: |
177+
mkdir -p php-src/ext/async
178+
cp -r async/* php-src/ext/async/
179+
180+
- name: Install build dependencies (Windows)
181+
if: matrix.os == 'windows-latest'
182+
run: |
183+
choco install -y visualstudio2022buildtools
184+
choco install -y git
185+
choco install -y cmake
186+
choco install -y vcpkg
187+
vcpkg install libuv:x64-windows
188+
vcpkg install openssl:x64-windows
189+
vcpkg install zlib:x64-windows
190+
vcpkg integrate install
191+
shell: cmd
192+
193+
- name: Install build dependencies (macOS)
194+
if: matrix.os == 'macos-latest'
195+
run: |
196+
brew install autoconf bison re2c
197+
brew install gmp icu4c tidyhtml5
198+
brew install libzip bzip2 sqlite oniguruma curl
199+
brew install libxml2 libxslt postgresql readline ldns libsodium
200+
brew install argon2 libuv openssl@3
201+
echo "PKG_CONFIG_PATH=$(brew --prefix openssl@3)/lib/pkgconfig:$(brew --prefix icu4c)/lib/pkgconfig:$(brew --prefix libxml2)/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
202+
echo "PATH=$(brew --prefix bison)/bin:$PATH" >> $GITHUB_ENV
203+
204+
158205
- name: Configure PHP (Windows)
159206
if: matrix.os == 'windows-latest'
160207
working-directory: php-src
@@ -234,39 +281,6 @@ jobs:
234281
echo "opcache.protect_memory=1"
235282
} > /usr/local/etc/php.d/opcache.ini
236283
237-
- name: Build PHP (Ubuntu)
238-
if: matrix.os == 'ubuntu-latest'
239-
working-directory: php-src
240-
run: |
241-
make -j"$(nproc)"
242-
sudo make install
243-
sudo mkdir -p /etc/php.d
244-
sudo chmod 777 /etc/php.d
245-
{
246-
echo "opcache.enable_cli=1"
247-
echo "opcache.protect_memory=1"
248-
} > /etc/php.d/opcache.ini
249-
250-
- name: Run tests (Ubuntu)
251-
if: matrix.os == 'ubuntu-latest'
252-
working-directory: php-src/ext/async
253-
run: |
254-
/usr/local/bin/php -v
255-
/usr/local/bin/php ../../run-tests.php \
256-
-d zend_extension=opcache.so \
257-
-d opcache.enable_cli=1 \
258-
-d opcache.jit_buffer_size=64M \
259-
-d opcache.jit=tracing \
260-
-d zend_test.observer.enabled=1 \
261-
-d zend_test.observer.show_output=0 \
262-
-P -q -x -j2 \
263-
-g FAIL,BORK,LEAK,XLEAK \
264-
--no-progress \
265-
--offline \
266-
--show-diff \
267-
--show-slow 1000 \
268-
--set-timeout 120 \
269-
--repeat 2
270284
271285
- name: Run tests (Windows)
272286
if: matrix.os == 'windows-latest'

0 commit comments

Comments
 (0)