Files
actions/docker-publish/README.md
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

3.5 KiB

ivuorinen/actions/docker-publish

Docker Publish

Description

Simple wrapper to publish Docker images to GitHub Packages and/or Docker Hub

Inputs

name description required default
registry

Registry to publish to (dockerhub, github, or both)

false both
image-name

Docker image name (defaults to repository name)

false ""
tags

Comma-separated list of tags (e.g., latest,v1.0.0)

false latest
platforms

Platforms to build for (comma-separated)

false linux/amd64,linux/arm64
context

Build context path

false .
dockerfile

Path to Dockerfile

false Dockerfile
build-args

Build arguments (newline-separated KEY=VALUE pairs)

false ""
push

Whether to push the image

false true
token

GitHub token for authentication (for GitHub registry)

false ""
dockerhub-username

Docker Hub username (required if publishing to Docker Hub)

false ""
dockerhub-token

Docker Hub token (required if publishing to Docker Hub)

false ""

Outputs

name description
image-name

Full image name with registry

tags

Tags that were published

digest

Image digest

metadata

Build metadata

Runs

This action is a composite action.

Usage

- uses: ivuorinen/actions/docker-publish@main
  with:
    registry:
    # Registry to publish to (dockerhub, github, or both)
    #
    # Required: false
    # Default: both

    image-name:
    # Docker image name (defaults to repository name)
    #
    # Required: false
    # Default: ""

    tags:
    # Comma-separated list of tags (e.g., latest,v1.0.0)
    #
    # Required: false
    # Default: latest

    platforms:
    # Platforms to build for (comma-separated)
    #
    # Required: false
    # Default: linux/amd64,linux/arm64

    context:
    # Build context path
    #
    # Required: false
    # Default: .

    dockerfile:
    # Path to Dockerfile
    #
    # Required: false
    # Default: Dockerfile

    build-args:
    # Build arguments (newline-separated KEY=VALUE pairs)
    #
    # Required: false
    # Default: ""

    push:
    # Whether to push the image
    #
    # Required: false
    # Default: true

    token:
    # GitHub token for authentication (for GitHub registry)
    #
    # Required: false
    # Default: ""

    dockerhub-username:
    # Docker Hub username (required if publishing to Docker Hub)
    #
    # Required: false
    # Default: ""

    dockerhub-token:
    # Docker Hub token (required if publishing to Docker Hub)
    #
    # Required: false
    # Default: ""