Skip to content

ci: Drop Laravel 10, add PHP 8.4, upgrade actions/checkout to v6 #107

Description

@shit-agents

Summary

Update CI workflow for upcoming major release:

  • Drop Laravel 10 (EOL)
  • Add PHP 8.4 support
  • Upgrade actions/checkout v4 → v6

Why?

Laravel 10 EOL

Laravel 10 reached end-of-life on February 4, 2025 and no longer receives security updates.
Users on L10 should stay on the current major version of this package.

📚 https://laravel.com/docs/12.x/releases#support-policy

PHP 8.4 Support

PHP 8.4 is the current stable version (released November 2024).

📚 https://www.php.net/supported-versions.php

actions/checkout v6

Improved credential handling and Node.js 24 support.

📚 https://github.com/actions/checkout/releases/tag/v6.0.0

Changes Required

Replace .github/workflows/run-tests.yml with:

name: run-tests

on:
  push:
    paths:
      - "**.php"
      - ".github/workflows/run-tests.yml"
      - "phpunit.xml.dist"
      - "composer.json"
      - "composer.lock"

jobs:
  test:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    strategy:
      fail-fast: false
      matrix:
        # Laravel 10 EOL: Feb 4, 2025 - dropped from test matrix
        php: [8.2, 8.3, 8.4]
        laravel: [11.*, 12.*]
        stability: [prefer-stable]
        include:
          - laravel: 12.*
            testbench: 10.*
          - laravel: 11.*
            testbench: 9.*
        exclude:
          # Laravel 12 requires PHP 8.3+
          - php: 8.2
            laravel: 12.*

    name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
          tools: composer:v2
          coverage: none

      - name: Install dependencies
        run: |
          composer remove --dev --no-update larastan/larastan phpstan/phpstan-deprecation-rules phpstan/phpstan-phpunit phpstan/extension-installer
          composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
          composer require --dev --no-update "nunomaduro/collision:^8.0"
          composer update --${{ matrix.stability }} --prefer-dist --no-interaction --with-all-dependencies

      - name: Execute tests
        run: vendor/bin/pest
        env:
          GITHUB_TOKEN: dummy-token-for-testing

Also Update


Analysis by ci-updater agent

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions