-
Notifications
You must be signed in to change notification settings - Fork 54
76 lines (71 loc) · 2.57 KB
/
Copy pathphpunit.yml
File metadata and controls
76 lines (71 loc) · 2.57 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
72
73
74
75
76
name: phpunit
on: [ push, pull_request ]
jobs:
php:
runs-on: ubuntu-latest
env:
PHP_VERSION: ${{ matrix.php }}
strategy:
fail-fast: false
matrix:
php: [ '8.1', '8.2', '8.3', '8.4', '8.5' ]
steps:
- uses: actions/checkout@v4
- name: Install deps
run: sudo apt update -y && sudo apt install -y libcurl4-openssl-dev php-curl libc-ares-dev python3 python3-dev
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
coverage: none
- name: Show machine information
run: |
date
env
uname -a
ulimit -a
php -v
php --ini
ls -al
ldconfig -p
pwd
echo "`git log -20 --pretty --oneline`"
echo "`git log -10 --stat --pretty --oneline`"
- name: Build
run: |
phpize
./configure --enable-code-coverage
make -j $(nproc)
cc -std=gnu11 -D_GNU_SOURCE -fsyntax-only tests/api_header.c -I. $(php-config --includes)
c++ -std=c++14 -D_GNU_SOURCE -shared -fPIC \
tests/phpy_test/phpy_test.cc \
-I. -Iinclude $(php-config --includes) $(python3-config --includes) \
-o modules/phpy_test.so
sudo make install
sudo sh -c "echo 'extension=phpy.so' > /etc/php/${PHP_VERSION}/cli/conf.d/90-phpy.ini"
sudo sh -c "echo 'extension=$(pwd)/modules/phpy_test.so' > /etc/php/${PHP_VERSION}/cli/conf.d/91-phpy-test.ini"
php --ri phpy
- name: Run phpunit tests
env:
LC_ALL: POSIX # Do not remove this line, PR: https://github.com/swoole/phpy/pull/45
run: |
sudo apt install -y redis-server
sudo service redis-server start
sudo pip3 install numpy
composer install
composer test
- name: Run cross-request lifecycle test
if: matrix.php == '8.4'
run: php tests/server/run.php modules/phpy.so
- name: run coverage
shell: bash
run: sudo apt-get install lcov &&
sudo lcov --directory . --capture --branch-coverage --rc geninfo_unexecuted_blocks=1 --ignore-errors mismatch --output-file coverage.info &&
sudo lcov --remove coverage.info '/usr/*' --output-file coverage.info &&
sudo lcov --list coverage.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.info
fail_ci_if_error: true