Files
actions/php-tests
Ismo Vuorinen 4b3087bbce fix: convert bash-specific syntax to POSIX sh in php-tests
Replace bash-specific [[ ]] syntax with POSIX-compliant alternatives
to adhere to CLAUDE.md standards (all scripts must be POSIX sh).

Changes:
- PHP version validation: Replace regex =~ with case statement
  matching X.Y and X.Y.Z patterns
- Max retries validation: Replace regex =~ with case statement
  checking for non-digit characters
- Email validation: Replace glob patterns with case statement
  matching *@*.* pattern
- Username validation: Replace glob patterns with case statement
  detecting command injection characters (;, &&, |)

All validation logic preserved, error messages unchanged.
2025-11-21 08:15:34 +02:00
..

ivuorinen/actions/php-tests

PHP Tests

Description

Run PHPUnit tests with optional Laravel setup and Composer dependency management

Inputs

name description required default
framework

Framework detection mode (auto=detect Laravel via artisan, laravel=force Laravel, generic=no framework)

false auto
php-version

PHP Version to use (latest, 8.4, 8.3, etc.)

false latest
extensions

PHP extensions to install (comma-separated)

false mbstring, intl, json, pdo_sqlite, sqlite3
coverage

Code-coverage driver (none, xdebug, pcov)

false none
composer-args

Arguments to pass to Composer install

false --no-progress --prefer-dist --optimize-autoloader
max-retries

Maximum number of retry attempts for Composer commands

false 3
token

GitHub token for authentication

false ""
username

GitHub username for commits

false github-actions
email

GitHub email for commits

false github-actions@github.com

Outputs

name description
framework

Detected framework (laravel or generic)

php-version

The PHP version that was setup

composer-version

Installed Composer version

cache-hit

Indicates if there was a cache hit

test-status

Test execution status (success/failure)

tests-run

Number of tests executed

tests-passed

Number of tests passed

Runs

This action is a composite action.

Usage

- uses: ivuorinen/actions/php-tests@main
  with:
    framework:
    # Framework detection mode (auto=detect Laravel via artisan, laravel=force Laravel, generic=no framework)
    #
    # Required: false
    # Default: auto

    php-version:
    # PHP Version to use (latest, 8.4, 8.3, etc.)
    #
    # Required: false
    # Default: latest

    extensions:
    # PHP extensions to install (comma-separated)
    #
    # Required: false
    # Default: mbstring, intl, json, pdo_sqlite, sqlite3

    coverage:
    # Code-coverage driver (none, xdebug, pcov)
    #
    # Required: false
    # Default: none

    composer-args:
    # Arguments to pass to Composer install
    #
    # Required: false
    # Default: --no-progress --prefer-dist --optimize-autoloader

    max-retries:
    # Maximum number of retry attempts for Composer commands
    #
    # Required: false
    # Default: 3

    token:
    # GitHub token for authentication
    #
    # Required: false
    # Default: ""

    username:
    # GitHub username for commits
    #
    # Required: false
    # Default: github-actions

    email:
    # GitHub email for commits
    #
    # Required: false
    # Default: github-actions@github.com