From 9f2c9e32d9831411076734cf4fdfabfd888cd341 Mon Sep 17 00:00:00 2001 From: Shift Date: Sat, 21 Feb 2026 03:08:16 +0000 Subject: [PATCH] Update GitHub Actions for Laravel 13 --- .github/workflows/ci.yml | 47 +++++++++++++++-- .github/workflows/installation.yml | 83 +++++++++++++----------------- .github/workflows/plugin.yml | 2 + 3 files changed, 81 insertions(+), 51 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a02634..462e6a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,21 +3,30 @@ name: CI on: push: branches: - - "*.x" + - *.x pull_request: jobs: latest: name: PHP ${{ matrix.php }} Latest + + + runs-on: ubuntu-latest + + strategy: matrix: php: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4'] + + steps: - name: Checkout code uses: actions/checkout@v3 + + - name: Setup PHP uses: shivammathur/setup-php@v2 with: @@ -25,29 +34,44 @@ jobs: tools: composer:v2 coverage: none + + - name: Emulate PHP 8.3 run: composer config platform.php 8.3.999 - if: matrix.php == '8.4' + if: "matrix.php == '8.4'" + + - name: Install dependencies run: | composer update --prefer-dist --no-interaction --no-progress vendor/bin/simple-phpunit install + + - name: Execute tests run: composer test lowest: name: PHP ${{ matrix.php }} Lowest + + + runs-on: ubuntu-latest + + strategy: matrix: - php: ['7.1', '7.4'] + php: ['7.1', '7.4', '8.3', '8.4', '8.5'] + + steps: - name: Checkout code uses: actions/checkout@v3 + + - name: Setup PHP uses: shivammathur/setup-php@v2 with: @@ -55,6 +79,8 @@ jobs: tools: composer:v1 coverage: none + + - name: Install dependencies run: | wget https://github.com/puli/cli/releases/download/1.0.0-beta9/puli.phar && chmod +x puli.phar @@ -62,17 +88,26 @@ jobs: composer update --prefer-dist --prefer-stable --prefer-lowest --no-interaction --no-progress vendor/bin/simple-phpunit install + + - name: Execute tests run: composer test coverage: name: Code Coverage + + + runs-on: ubuntu-latest + + steps: - name: Checkout code uses: actions/checkout@v3 + + - name: Setup PHP uses: shivammathur/setup-php@v2 with: @@ -80,14 +115,20 @@ jobs: tools: composer:v2 coverage: xdebug + + - name: Install dependencies run: | composer require "friends-of-phpspec/phpspec-code-coverage:^4.3.2" --no-interaction --no-update composer update --prefer-dist --no-interaction --no-progress + + - name: Execute tests run: composer test-ci + + - name: Upload coverage run: | wget https://scrutinizer-ci.com/ocular.phar diff --git a/.github/workflows/installation.yml b/.github/workflows/installation.yml index 061a6d2..849a84c 100644 --- a/.github/workflows/installation.yml +++ b/.github/workflows/installation.yml @@ -1,81 +1,68 @@ name: Installation + on: push: branches: - - "*.x" + - *.x pull_request: jobs: installation: name: Installation test ${{ matrix.expect }} ${{ matrix.method }} ${{ matrix.requirements }} ${{ matrix.pecl }} + runs-on: ubuntu-latest strategy: matrix: include: - # Test that we find Guzzle 6 v1 - expect: will-find - requirements: "php-http/guzzle6-adapter:^1.1.1" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # Test that we find Guzzle 6 v2 + requirements: php-http/guzzle6-adapter:^1.1.1 + method: Http\Discovery\HttpClientDiscovery::find(); - expect: will-find - requirements: "php-http/guzzle6-adapter:^2.0.1" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # Test that we find Guzzle 7 Adapter + requirements: php-http/guzzle6-adapter:^2.0.1 + method: Http\Discovery\HttpClientDiscovery::find(); - expect: will-find - requirements: "php-http/guzzle7-adapter:^0.1" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # Test that we find a client with Symfony and Guzzle PSR-7 + requirements: php-http/guzzle7-adapter:^0.1 + method: Http\Discovery\HttpClientDiscovery::find(); - expect: will-find - requirements: "symfony/http-client:^5 php-http/httplug php-http/message-factory guzzlehttp/psr7:^1 http-interop/http-factory-guzzle" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # We should fail if we dont have php-http/message-factory or PSR-17 + requirements: symfony/http-client:^5 php-http/httplug php-http/message-factory guzzlehttp/psr7:^1 http-interop/http-factory-guzzle + method: Http\Discovery\HttpClientDiscovery::find(); - expect: cant-find - requirements: "symfony/http-client:^5 php-http/httplug guzzlehttp/psr7:^1" - method: "Http\\Discovery\\HttpClientDiscovery::find();" + requirements: symfony/http-client:^5 php-http/httplug guzzlehttp/psr7:^1 + method: Http\Discovery\HttpClientDiscovery::find(); - expect: cant-find - requirements: "symfony/http-client:^5 php-http/httplug guzzlehttp/psr7:^1 http-interop/http-factory-guzzle" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # We should be able to find a client when Symfony is only partly installed and we have guzzle adapter installed + requirements: symfony/http-client:^5 php-http/httplug guzzlehttp/psr7:^1 http-interop/http-factory-guzzle + method: Http\Discovery\HttpClientDiscovery::find(); - expect: will-find - requirements: "symfony/http-client:^5 php-http/guzzle6-adapter php-http/httplug php-http/message-factory guzzlehttp/psr7:^1" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # Test that we find a client with Symfony and Guzzle + requirements: symfony/http-client:^5 php-http/guzzle6-adapter php-http/httplug php-http/message-factory guzzlehttp/psr7:^1 + method: Http\Discovery\HttpClientDiscovery::find(); - expect: will-find - requirements: "php-http/client-common:^2 php-http/message:^1.8 symfony/http-client:^4 php-http/guzzle6-adapter" - method: "Http\\Discovery\\HttpClientDiscovery::find();" - # Test that we find an async client with Symfony and Guzzle + requirements: php-http/client-common:^2 php-http/message:^1.8 symfony/http-client:^4 php-http/guzzle6-adapter + method: Http\Discovery\HttpClientDiscovery::find(); - expect: will-find - requirements: "php-http/client-common:^2 php-http/message:^1.8 symfony/http-client:^4 php-http/guzzle6-adapter" - method: "Http\\Discovery\\HttpAsyncClientDiscovery::find();" - # Test that we find PSR-18 Guzzle 6 + requirements: php-http/client-common:^2 php-http/message:^1.8 symfony/http-client:^4 php-http/guzzle6-adapter + method: Http\Discovery\HttpAsyncClientDiscovery::find(); - expect: will-find - requirements: "php-http/guzzle6-adapter:^2.0.1" - method: "Http\\Discovery\\Psr18ClientDiscovery::find();" - # Test that we find PSR-18 Guzzle 7 + requirements: php-http/guzzle6-adapter:^2.0.1 + method: Http\Discovery\Psr18ClientDiscovery::find(); - expect: will-find - requirements: "guzzlehttp/guzzle:^7.0.1" - method: "Http\\Discovery\\Psr18ClientDiscovery::find();" - # Test that we find PSR-18 Symfony 4 + requirements: guzzlehttp/guzzle:^7.0.1 + method: Http\Discovery\Psr18ClientDiscovery::find(); - expect: will-find - requirements: "symfony/http-client:^4 php-http/httplug php-http/message-factory nyholm/psr7:^1.3" - method: "Http\\Discovery\\Psr18ClientDiscovery::find();" - # Test that we find PSR-18 Symfony 5 + requirements: symfony/http-client:^4 php-http/httplug php-http/message-factory nyholm/psr7:^1.3 + method: Http\Discovery\Psr18ClientDiscovery::find(); - expect: will-find - requirements: "symfony/http-client:^5 php-http/httplug php-http/message-factory nyholm/psr7:^1.3" - method: "Http\\Discovery\\Psr18ClientDiscovery::find();" - # Test that we find PSR-17 http-interop + requirements: symfony/http-client:^5 php-http/httplug php-http/message-factory nyholm/psr7:^1.3 + method: Http\Discovery\Psr18ClientDiscovery::find(); - expect: will-find - requirements: "http-interop/http-factory-guzzle:^1" - method: "Http\\Discovery\\Psr17FactoryDiscovery::findRequestFactory();" - # Test that we find PSR-17 nyholm + requirements: http-interop/http-factory-guzzle:^1 + method: Http\Discovery\Psr17FactoryDiscovery::findRequestFactory(); - expect: will-find - requirements: "nyholm/psr7:^1.3" - method: "Http\\Discovery\\Psr17FactoryDiscovery::findRequestFactory();" - # Test that we find Phalcon with PSR + requirements: nyholm/psr7:^1.3 + method: Http\Discovery\Psr17FactoryDiscovery::findRequestFactory(); - expect: will-find - pecl: "psr-1.0.0, phalcon-4.0.6" - method: "Http\\Discovery\\Psr17FactoryDiscovery::findRequestFactory();" + pecl: psr-1.0.0, phalcon-4.0.6 + method: Http\Discovery\Psr17FactoryDiscovery::findRequestFactory(); steps: - name: Checkout code diff --git a/.github/workflows/plugin.yml b/.github/workflows/plugin.yml index 18763c9..c685c06 100644 --- a/.github/workflows/plugin.yml +++ b/.github/workflows/plugin.yml @@ -1,4 +1,5 @@ name: Plugin + on: push: branches: @@ -8,6 +9,7 @@ on: jobs: plugin: name: Plugin test with Composer ${{ matrix.composer }} + runs-on: ubuntu-latest strategy: