chore(deps): update dependency guzzlehttp/guzzle to v8 #1356
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main, 1.x] | |
| pull_request: | |
| branches: [main, 1.x] | |
| workflow_call: | |
| permissions: | |
| contents: read | |
| jobs: | |
| tests: | |
| name: PHP ${{ matrix.php }} / PHPUnit ${{ matrix.phpunit }}${{ matrix.deps == 'lowest' && ' / lowest deps' || '' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - php: '8.3' | |
| phpunit: '12' | |
| deps: highest | |
| - php: '8.3' | |
| phpunit: '12' | |
| deps: lowest | |
| - php: '8.4' | |
| phpunit: '12' | |
| deps: highest | |
| - php: '8.4' | |
| phpunit: '13' | |
| deps: highest | |
| - php: '8.5' | |
| phpunit: '12' | |
| deps: highest | |
| - php: '8.5' | |
| phpunit: '13' | |
| deps: highest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| coverage: none | |
| - name: Install dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| args: >- | |
| update --with phpunit/phpunit:^${{ matrix.phpunit }}.0 | |
| ${{ matrix.deps == 'lowest' && '--prefer-lowest' || '' }} | |
| cache-key: php${{ matrix.php }}-phpunit${{ matrix.phpunit }}-${{ matrix.deps }} | |
| - name: Run tests | |
| run: vendor/bin/phpunit | |
| pest: | |
| name: Pest plugin smoke (PHP ${{ matrix.php }}) | |
| runs-on: ubuntu-latest | |
| # Pest 4 requires PHPUnit ^12; the mainline matrix also runs PHPUnit 13. | |
| # Keeping this job on PHPUnit 12 isolates the Pest plugin without forcing | |
| # the rest of the matrix to drop PHPUnit 13. Pest is added on demand | |
| # rather than to require-dev so the regular composer install used by the | |
| # matrix above stays Pest-free. | |
| # | |
| # The matrix covers the full supported PHP range and catches regressions on | |
| # the Pest internals the dispatcher depends on (HigherOrderTapProxy, | |
| # PendingCalls\TestCall, dynamic property access). | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: ['8.3', '8.4', '8.5'] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| coverage: none | |
| - name: Install dependencies (with Pest 4) | |
| # Single resolve: any version conflict surfaces as one dependency | |
| # tree in the CI log, not as a "no-update succeeded but update | |
| # failed" two-step that obscures which constraint introduced the | |
| # conflict. | |
| uses: ./.github/actions/composer-install | |
| with: | |
| args: require --dev pestphp/pest:^4.0 | |
| cache-key: pest-php${{ matrix.php }} | |
| - name: Run Pest smoke tests | |
| run: composer test:pest | |
| pest-example: | |
| name: Pest plugin example | |
| runs-on: ubuntu-latest | |
| # The runnable example under examples/pest/ tracks the working tree via a | |
| # path repository. Without this job the example silently rots whenever the | |
| # library's public API surface, composer.json, or autoload.files entry | |
| # changes. Single PHP cell is enough — the example exists to teach, not | |
| # cover the matrix. | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Install example dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| working-directory: examples/pest | |
| cache-key: example-pest | |
| - name: Run example Pest suite | |
| working-directory: examples/pest | |
| run: vendor/bin/pest --colors=always | |
| psr7-example: | |
| name: PSR-7 example | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Install example dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| working-directory: examples/psr7 | |
| cache-key: example-psr7 | |
| - name: Run PSR-7 example | |
| working-directory: examples/psr7 | |
| run: composer test | |
| quickstart-examples: | |
| name: ${{ matrix.example }} quickstart | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - example: core | |
| php: '8.3' | |
| - example: laravel | |
| php: '8.3' | |
| - example: symfony | |
| php: '8.3' | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| coverage: none | |
| - name: Install quickstart dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| working-directory: examples/${{ matrix.example }} | |
| cache-key: quickstart-${{ matrix.example }} | |
| - name: Run quickstart | |
| working-directory: examples/${{ matrix.example }} | |
| run: composer test | |
| docs: | |
| name: Documentation site | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 | |
| with: | |
| node-version: '24' | |
| cache: npm | |
| - name: Install documentation dependencies | |
| run: npm ci | |
| - name: Audit documentation dependencies | |
| run: npm audit --audit-level=high | |
| - name: Verify vendored Tombo assets | |
| run: npm run docs:verify-tombo | |
| - name: Build searchable documentation | |
| env: | |
| DOCS_VERSION: next | |
| run: npm run docs:build | |
| - name: Verify rendered documentation version | |
| env: | |
| DOCS_VERSION: next | |
| run: npm run docs:verify-version | |
| - name: Verify documentation accessibility invariants | |
| run: npm run docs:verify-accessibility | |
| - name: Verify documentation base path | |
| run: npm run docs:verify-base | |
| # Hands the built heading anchors to the link check below, which is what | |
| # confirms they are still the ones GitHub emits. | |
| - name: Collect built heading anchors | |
| run: npm run docs:anchor-probe | |
| # Reads lychee.toml, the same file `npm run docs:links` uses locally. | |
| # The probe is passed as a glob so a run without a build skips it with a | |
| # warning; naming the file directly aborts lychee before it checks | |
| # anything. The step above is what guarantees it exists here. | |
| - name: Check documentation links | |
| uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0 | |
| with: | |
| args: --no-progress README.md CONTRIBUTING.md UPGRADING.md SECURITY.md 'docs/*.md' 'docs/**/*.md' 'examples/*/README.md' 'docs/.vitepress/dist/*.md' | |
| fail: true | |
| failIfEmpty: true | |
| jobSummary: true | |
| static-analysis: | |
| name: PHPStan | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Install dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| cache-key: phpstan | |
| - name: Run PHPStan | |
| run: vendor/bin/phpstan analyse | |
| code-style: | |
| name: PHP-CS-Fixer | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Install dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| cache-key: cs-fixer | |
| - name: Check code style | |
| run: vendor/bin/php-cs-fixer fix --dry-run --diff | |
| composer-validate: | |
| name: composer-validate | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| # Run on the lowest supported PHP so any constraint mismatch | |
| # between composer.json's `php: ^8.3` and the resolved dependencies | |
| # surfaces here, not at install time on a downstream consumer. | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Validate composer.json + composer.lock | |
| run: composer validate --strict | |
| composer-audit: | |
| name: composer-audit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| # Same rationale as composer-validate: the audit itself is | |
| # platform-independent, but installing on the lowest PHP catches | |
| # platform-constraint regressions in dependencies. | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Install dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| cache-key: audit | |
| - name: Audit installed dependencies | |
| run: composer audit --abandoned=fail | |
| markdown-lint: | |
| name: Markdown Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: '8.3' | |
| coverage: none | |
| - name: Setup Node | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 | |
| with: | |
| node-version: '24' | |
| - name: Verify Node toolchain is usable | |
| run: | | |
| node --version | |
| npx --version | |
| - name: Install PHP dependencies | |
| uses: ./.github/actions/composer-install | |
| with: | |
| cache-key: markdown-lint | |
| - name: Run markdown lint test | |
| run: vendor/bin/phpunit --filter MarkdownCoverageRendererLintTest |