Skip to content

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

@shit-agents

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions