Test for Hyperf Components #60
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test for Hyperf Components | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 2 * * *' | |
env: | |
SW_VERSION: 'v5.1.2' | |
jobs: | |
database: | |
name: Test for Database | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
mysql-version: [ '5.7', '8.0' ] | |
max-parallel: 2 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: redis, pdo, pdo_mysql, bcmath, swoole | |
ini-values: opcache.enable_cli=1 | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Packages | |
run: ./.travis/requirement.install.sh | |
- name: Setup Services | |
run: | | |
docker run --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true -d mysql:${{ matrix.mysql-version }} --bind-address=0.0.0.0 --default-authentication-plugin=mysql_native_password | |
sleep 20 | |
- name: Setup Mysql | |
run: export TRAVIS_BUILD_DIR=$(pwd) && bash ./.travis/setup.mysql.sh | |
- name: Run Test Cases | |
run: | | |
composer test src/database -- --exclude-group NonCoroutine | |
vendor/bin/phpunit src/database --group NonCoroutine | |
filesystem: | |
name: Test for Filesystem | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
version: [ '^1.0', '^2.0', '^3.0' ] | |
php-version: [ '8.3', '8.2', '8.1' ] | |
max-parallel: 2 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: swoole | |
ini-values: opcache.enable_cli=1 | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Packages | |
run: composer require "league/flysystem:${{ matrix.version }}" --dev -o -W | |
- name: Setup Flysystem(v1.0) Adapters | |
if: ${{ matrix.version == '^1.0' }} | |
run: | | |
composer require xxtime/flysystem-aliyun-oss -W | |
composer require "overtrue/flysystem-cos:^3.0" -W | |
composer require "overtrue/flysystem-qiniu:^1.0" -W | |
- name: Setup Flysystem(v2.0) Adapters | |
if: ${{ matrix.version == '^2.0' }} | |
run: | | |
composer require hyperf/flysystem-oss -W | |
composer require "league/flysystem-ftp:^3.0" -W | |
composer require "overtrue/flysystem-cos:^4.0" -W | |
composer require "overtrue/flysystem-qiniu:^2.0" -W | |
- name: Setup Flysystem(v3.0) Adapters | |
if: ${{ matrix.version == '^3.0' }} | |
run: | | |
composer require hyperf/flysystem-oss -W | |
composer require league/flysystem-ftp -W | |
composer require "overtrue/flysystem-cos:^5.0" -W | |
composer require "overtrue/flysystem-qiniu:^3.0" -W | |
- name: Run Test Cases | |
run: | | |
./.travis/requirement.install.sh | |
composer test src/filesystem -- --exclude-group NonCoroutine | |
phar: | |
name: Test for Building PHAR | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
no-dev: [ '--no-dev', '' ] | |
php-version: [ '8.1' ] | |
max-parallel: 2 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: redis, swoole | |
ini-values: opcache.enable_cli=0, phar.readonly='Off' | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Build phar tester | |
run: | | |
git clone https://github.com/limingxinleo/hyperf-phar-tester.git | |
cd hyperf-phar-tester | |
git checkout 3.1 | |
composer update -o ${{ matrix.no-dev }} | |
rm -rf vendor/hyperf/phar | |
cp -rf ../src/phar vendor/hyperf/phar | |
composer dump-autoload -o | |
- name: Test | |
run: | | |
sudo rm -rf /etc/php/${{ matrix.php-version }}/cli/conf.d/20-xdebug.ini | |
php -v | |
php -m | |
php --ri swoole | |
cd hyperf-phar-tester | |
php bin/hyperf.php | |
php bin/hyperf.php phar:build --name no_env.phar | |
php no_env.phar show:name -N null | |
php no_env.phar read:vendor-bin | |
cp .env.example .env | |
php bin/hyperf.php phar:build --name default_env.phar | |
php default_env.phar show:name -N hyperf-phar-tester | |
php bin/hyperf.php phar:build --name link_env.phar -M .env.link:.env | |
echo APP_NAME=helloworld > .env.link | |
php link_env.phar show:name -N helloworld | |
sudo chmod u+x link_env.phar | |
./link_env.phar show:name -N helloworld | |
container: | |
name: Test for Psr Container V1.0 ~ V2.0 | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
version: [ '^1.0', '^2.0' ] | |
max-parallel: 6 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: swoole | |
ini-values: opcache.enable_cli=0 | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Packages | |
run: | | |
cp .travis/.env.example .env | |
./.travis/requirement.install.sh | |
composer remove friendsofphp/php-cs-fixer --dev -W | |
composer remove symfony/console --dev -W | |
composer require "psr/container:${{ matrix.version }}" | |
composer update -oW | |
- name: Run Test Cases | |
run: | | |
composer analyse src/di | |
vendor/bin/phpunit src/di | |
http-message: | |
name: Test for Http Message V1.0 ~ V2.0 | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
version: [ '^1.0', '^2.0' ] | |
max-parallel: 6 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: swoole | |
ini-values: opcache.enable_cli=0 | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Packages | |
run: | | |
cp .travis/.env.example .env | |
./.travis/requirement.install.sh | |
composer remove swow/swow --dev -W | |
composer remove league/flysystem-memory --dev -W | |
composer remove league/flysystem-aws-s3-v3 --dev -W | |
composer remove league/flysystem --dev -W | |
composer remove aws/aws-sdk-php --dev -W | |
composer remove influxdb/influxdb-php --dev -W | |
composer remove guzzlehttp/guzzle --dev -W | |
composer remove jcchavezs/zipkin-opentracing -W --dev | |
composer require "psr/http-message:${{ matrix.version }}" -W | |
composer update -oW | |
- name: Run Test Cases | |
run: | | |
composer analyse src/http-message | |
composer analyse src/http-server | |
vendor/bin/phpunit src/http-message | |
log: | |
name: Test for Psr Log V1.0 ~ V3.0 | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
log-version: [ '^1.0', '^2.0', '^3.0' ] | |
exclude: | |
- php-version: '8.1' | |
log-version: '^1.0' | |
- php-version: '8.2' | |
log-version: '^1.0' | |
max-parallel: 5 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: swoole | |
ini-values: opcache.enable_cli=0 | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Removed conflict Packages | |
run: | | |
composer remove elasticsearch/elasticsearch --dev -W | |
composer remove jonahgeorge/jaeger-client-php --dev -W | |
composer remove bandwidth-throttle/token-bucket --dev -W | |
composer remove friendsofphp/php-cs-fixer --dev -W | |
composer remove zircote/swagger-php --dev -W | |
composer remove "symfony/*" --dev -W | |
- name: Run Test Cases | |
run: | | |
./.travis/requirement.install.sh | |
if [ ${{ matrix.log-version }} == '^1.0' ] | |
then | |
composer require "monolog/monolog:^2.0" | |
fi | |
composer require "psr/log:${{ matrix.log-version }}" | |
if [ ${{ matrix.log-version }} == '^3.0' ] | |
then | |
composer require "symfony/console:^6.0" --dev -W | |
else | |
composer require "symfony/console:^5.0" --dev -W | |
fi | |
composer require symfony/event-dispatcher --dev -W | |
composer update -oW | |
composer analyse src/framework | |
composer analyse src/server/src/Entry/Logger.php | |
composer analyse src/logger | |
composer test src/framework | |
composer test src/logger | |
composer info | grep psr/log | |
simple-cache: | |
name: Test for Psr SimpleCache V1.0 ~ V3.0 | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
psr-version: [ '^1.0', '^2.0', '^3.0' ] | |
max-parallel: 3 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
ini-values: opcache.enable_cli=0 | |
extensions: redis, pdo, pdo_mysql, bcmath, swoole | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Services | |
run: | | |
docker run --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true -d mysql:8.0 --bind-address=0.0.0.0 --default-authentication-plugin=mysql_native_password | |
docker run --name redis -p 6379:6379 -d redis | |
sleep 20 | |
- name: Setup Mysql | |
run: export TRAVIS_BUILD_DIR=$(pwd) && bash ./.travis/setup.mysql.sh | |
- name: Run Test Cases | |
run: | | |
./.travis/requirement.install.sh | |
composer require "psr/simple-cache:${{ matrix.psr-version }}" | |
composer update -oW | |
composer analyse src/cache | |
composer test src/cache | |
composer analyse src/model-cache | |
composer test src/model-cache | |
composer info | grep psr/simple-cache | |
ext-redis: | |
name: Test for Redis Module | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
redis: [ 'redis', 'redis-5.3.7' ] | |
max-parallel: 2 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: ${{ matrix.redis }}, swoole | |
ini-values: opcache.enable_cli=1 | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Packages | |
run: ./.travis/requirement.install.sh | |
- name: Setup Services | |
run: | | |
docker run --name redis -p 6379:6379 -d redis | |
sleep 20 | |
- name: Run Test Cases | |
run: | | |
composer test src/redis | |
symfony: | |
name: Test for Symfony | |
runs-on: 'ubuntu-latest' | |
env: | |
PHP_VERSION: ${{ matrix.php-version }} | |
strategy: | |
matrix: | |
php-version: [ '8.3', '8.2', '8.1' ] | |
symfony-version: [ '^6.0', '^7.0' ] | |
exclude: | |
- php-version: '8.1' | |
symfony-version: '^7.0' | |
max-parallel: 2 | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: phpize | |
extensions: ${{ matrix.redis }}, swoole | |
ini-values: opcache.enable_cli=1 | |
coverage: none | |
- name: Setup Swoole | |
run: ./.travis/swoole.install.sh | |
- name: Setup Packages | |
run: | | |
composer remove friendsofphp/php-cs-fixer --dev --no-update | |
for package in `cat composer.json|grep "symfony/"| awk -F '"' '{print $2}'`; do composer require "${package}:${{ matrix.symfony-version }}" --dev --no-update; done | |
./.travis/requirement.install.sh | |
- name: Run Test Cases | |
run: | | |
cp .travis/.env.example .env | |
composer analyse src/command | |
composer test src/command | |
composer analyse src/config | |
composer test src/config | |
composer analyse src/di | |
vendor/bin/phpunit src/di | |
composer analyse src/framework | |
composer test src/framework | |
composer analyse src/server | |
composer test src/server | |
# composer analyse src/serializer | |
# composer test src/serializer | |
# composer analyse src/task | |
# composer test src/task | |