Files
actions/validate-inputs
Ismo Vuorinen 7b14ba3b5a refactor: consolidate PHP testing actions with Laravel detection
Merge php-tests, php-laravel-phpunit, and php-composer into single php-tests action:

Consolidation:
- Merge three PHP actions into one with framework auto-detection
- Add framework input (auto/laravel/generic) with artisan file detection
- Inline PHP version detection from multiple sources
- Inline Composer setup, caching, and dependency installation
- Add conditional Laravel-specific setup steps

Features:
- Auto-detect Laravel via artisan file presence
- PHP version detection from .tool-versions, Dockerfile, composer.json, etc.
- Composer dependency management with retry logic and caching
- Laravel setup: .env copy, key generation, permissions, SQLite database
- Smart test execution: composer test for Laravel, direct PHPUnit for generic

Outputs:
- framework: Detected framework (laravel/generic)
- php-version, composer-version, cache-hit: Setup metadata
- test-status, tests-run, tests-passed: Test results

Deleted:
- php-laravel-phpunit/: Laravel-specific testing action
- php-composer/: Composer dependency management action
- Related test files and custom validators

Updated:
- CLAUDE.md: 26 → 24 actions
- generate_listing.cjs: Remove php-laravel-phpunit, php-composer
- validate-inputs: Remove php-laravel-phpunit custom validator

Result: 3 actions → 1 action, maintained all functionality with simpler interface.
2025-11-20 22:38:00 +02:00
..
2025-11-19 15:42:06 +02:00
2025-11-19 15:42:06 +02:00
2025-11-19 15:42:06 +02:00

ivuorinen/actions/validate-inputs

Validate Inputs

Description

Centralized Python-based input validation for GitHub Actions with PCRE regex support

Inputs

name description required default
action

Action name to validate (alias for action-type)

false ""
action-type

Type of action to validate (e.g., csharp-publish, docker-build, eslint-lint)

false ""
rules-file

Path to validation rules file

false ""
fail-on-error

Whether to fail on validation errors

false true
token

GitHub token for authentication

false ""
namespace

Namespace/username for validation

false ""
email

Email address for validation

false ""
username

Username for validation

false ""
dotnet-version

.NET version string

false ""
terraform-version

Terraform version string

false ""
tflint-version

TFLint version string

false ""
node-version

Node.js version string

false ""
force-version

Force version override

false ""
default-version

Default version fallback

false ""
image-name

Docker image name

false ""
tag

Docker image tag

false ""
architectures

Target architectures

false ""
dockerfile

Dockerfile path

false ""
context

Docker build context

false ""
build-args

Docker build arguments

false ""
buildx-version

Docker Buildx version

false ""
max-retries

Maximum retry attempts

false ""
image-quality

Image quality percentage

false ""
png-quality

PNG quality percentage

false ""
parallel-builds

Number of parallel builds

false ""
days-before-stale

Number of days before marking as stale

false ""
days-before-close

Number of days before closing stale items

false ""
pre-commit-config

Pre-commit configuration file path

false ""
base-branch

Base branch name

false ""
dry-run

Dry run mode

false ""
is_fiximus

Use Fiximus bot

false ""
prefix

Release tag prefix

false ""
language

Language to analyze (for CodeQL)

false ""
queries

CodeQL queries to run

false ""
packs

CodeQL query packs

false ""
config-file

CodeQL configuration file path

false ""
config

CodeQL configuration YAML string

false ""
build-mode

Build mode for compiled languages

false ""
source-root

Source code root directory

false ""
category

Analysis category

false ""
checkout-ref

Git reference to checkout

false ""
working-directory

Working directory for analysis

false ""
upload-results

Upload results to GitHub Security

false ""
ram

Memory in MB for CodeQL

false ""
threads

Number of threads for CodeQL

false ""
output

Output path for SARIF results

false ""
skip-queries

Skip running queries

false ""
add-snippets

Add code snippets to SARIF

false ""

Outputs

name description
validation-status

Overall validation status (success/failure)

error-message

Validation error message if failed

validation-result

Detailed validation result

errors-found

Number of validation errors found

rules-applied

Number of validation rules applied

Runs

This action is a composite action.

Usage

- uses: ivuorinen/actions/validate-inputs@main
  with:
    action:
    # Action name to validate (alias for action-type)
    #
    # Required: false
    # Default: ""

    action-type:
    # Type of action to validate (e.g., csharp-publish, docker-build, eslint-lint)
    #
    # Required: false
    # Default: ""

    rules-file:
    # Path to validation rules file
    #
    # Required: false
    # Default: ""

    fail-on-error:
    # Whether to fail on validation errors
    #
    # Required: false
    # Default: true

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

    namespace:
    # Namespace/username for validation
    #
    # Required: false
    # Default: ""

    email:
    # Email address for validation
    #
    # Required: false
    # Default: ""

    username:
    # Username for validation
    #
    # Required: false
    # Default: ""

    dotnet-version:
    # .NET version string
    #
    # Required: false
    # Default: ""

    terraform-version:
    # Terraform version string
    #
    # Required: false
    # Default: ""

    tflint-version:
    # TFLint version string
    #
    # Required: false
    # Default: ""

    node-version:
    # Node.js version string
    #
    # Required: false
    # Default: ""

    force-version:
    # Force version override
    #
    # Required: false
    # Default: ""

    default-version:
    # Default version fallback
    #
    # Required: false
    # Default: ""

    image-name:
    # Docker image name
    #
    # Required: false
    # Default: ""

    tag:
    # Docker image tag
    #
    # Required: false
    # Default: ""

    architectures:
    # Target architectures
    #
    # Required: false
    # Default: ""

    dockerfile:
    # Dockerfile path
    #
    # Required: false
    # Default: ""

    context:
    # Docker build context
    #
    # Required: false
    # Default: ""

    build-args:
    # Docker build arguments
    #
    # Required: false
    # Default: ""

    buildx-version:
    # Docker Buildx version
    #
    # Required: false
    # Default: ""

    max-retries:
    # Maximum retry attempts
    #
    # Required: false
    # Default: ""

    image-quality:
    # Image quality percentage
    #
    # Required: false
    # Default: ""

    png-quality:
    # PNG quality percentage
    #
    # Required: false
    # Default: ""

    parallel-builds:
    # Number of parallel builds
    #
    # Required: false
    # Default: ""

    days-before-stale:
    # Number of days before marking as stale
    #
    # Required: false
    # Default: ""

    days-before-close:
    # Number of days before closing stale items
    #
    # Required: false
    # Default: ""

    pre-commit-config:
    # Pre-commit configuration file path
    #
    # Required: false
    # Default: ""

    base-branch:
    # Base branch name
    #
    # Required: false
    # Default: ""

    dry-run:
    # Dry run mode
    #
    # Required: false
    # Default: ""

    is_fiximus:
    # Use Fiximus bot
    #
    # Required: false
    # Default: ""

    prefix:
    # Release tag prefix
    #
    # Required: false
    # Default: ""

    language:
    # Language to analyze (for CodeQL)
    #
    # Required: false
    # Default: ""

    queries:
    # CodeQL queries to run
    #
    # Required: false
    # Default: ""

    packs:
    # CodeQL query packs
    #
    # Required: false
    # Default: ""

    config-file:
    # CodeQL configuration file path
    #
    # Required: false
    # Default: ""

    config:
    # CodeQL configuration YAML string
    #
    # Required: false
    # Default: ""

    build-mode:
    # Build mode for compiled languages
    #
    # Required: false
    # Default: ""

    source-root:
    # Source code root directory
    #
    # Required: false
    # Default: ""

    category:
    # Analysis category
    #
    # Required: false
    # Default: ""

    checkout-ref:
    # Git reference to checkout
    #
    # Required: false
    # Default: ""

    working-directory:
    # Working directory for analysis
    #
    # Required: false
    # Default: ""

    upload-results:
    # Upload results to GitHub Security
    #
    # Required: false
    # Default: ""

    ram:
    # Memory in MB for CodeQL
    #
    # Required: false
    # Default: ""

    threads:
    # Number of threads for CodeQL
    #
    # Required: false
    # Default: ""

    output:
    # Output path for SARIF results
    #
    # Required: false
    # Default: ""

    skip-queries:
    # Skip running queries
    #
    # Required: false
    # Default: ""

    add-snippets:
    # Add code snippets to SARIF
    #
    # Required: false
    # Default: ""