Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nektos/act
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: sravinet/act
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 17 commits
  • 25 files changed
  • 1 contributor

Commits on Feb 4, 2026

  1. docs: add comprehensive ADRs for Podman support

    Add Architecture Decision Records documenting the design and implementation
    of multi-runtime container support in Act:
    
    - ADR-001: Container Runtime Abstraction - defines the strategy for
      supporting multiple container runtimes while maintaining backward
      compatibility
    - ADR-002: Podman Integration Strategy - outlines the approach for
      integrating Podman using Docker-compatible APIs
    - ADR-003: Runtime Detection Mechanism - details the intelligent
      runtime detection and selection algorithm
    - PODMAN_SUPPORT.md: comprehensive user guide for the new functionality
    
    These ADRs provide the architectural foundation for zero-breaking-change
    multi-runtime support with Podman preferred for enhanced security.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    5928591 View commit details
    Browse the repository at this point in the history
  2. feat: implement container runtime detection and factory

    Add comprehensive runtime detection system with intelligent fallback:
    
    - runtime_detector.go: Multi-layered detection algorithm with socket
      discovery, binary verification, and environment variable support
    - factory.go: Enhanced factory pattern supporting multiple runtimes
      with automatic selection and explicit override capabilities
    - null_container.go: Null Object Pattern implementation providing
      graceful error handling and helpful user guidance when no runtime
      is available
    
    Key features:
    - Automatic runtime detection with Podman preferred for security
    - Zero-configuration experience for most users
    - Comprehensive error handling with actionable guidance
    - Extensible architecture for future runtime additions
    - Full backward compatibility with existing workflows
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    48af2e5 View commit details
    Browse the repository at this point in the history
  3. feat: add Podman support with Docker-compatible API

    Implement comprehensive Podman support while enhancing Docker integration:
    
    podman_run.go:
    - Docker-compatible API implementation for seamless integration
    - Podman-specific error detection and user-friendly hints
    - Rootless container detection and optimization hooks
    - Enhanced security through daemonless, rootless architecture
    
    docker_run.go enhancements:
    - Runtime-aware container operations with generic implementations
    - Enhanced factory pattern with runtime-specific method dispatch
    - Improved logging to show actual runtime being used
    - Maintained full backward compatibility
    
    Features delivered:
    - Zero learning curve for existing users
    - Automatic runtime preference with manual override
    - Production-ready implementation with error handling
    - Full feature parity between Docker and Podman
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    dc9be53 View commit details
    Browse the repository at this point in the history
  4. feat: add CLI support for container runtime selection

    Integrate multi-runtime support into Act's CLI and configuration:
    
    cmd/input.go & cmd/root.go:
    - Add --container-runtime flag (auto, docker, podman)
    - Add --container-socket flag for custom socket paths
    - Environment variable support (ACT_CONTAINER_RUNTIME, ACT_CONTAINER_SOCKET)
    - Runtime configuration validation and helpful error messages
    
    pkg/runner/runner.go:
    - Extend runner configuration with runtime preferences
    - Seamless integration with existing workflow execution
    
    User experience improvements:
    - Zero-configuration automatic detection
    - Full user control when needed via CLI flags
    - Environment variable configuration for CI/CD
    - Consistent behavior across all Act commands
    - Helpful guidance when configuration issues occur
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    5e788a1 View commit details
    Browse the repository at this point in the history
  5. feat: add comprehensive testing and documentation

    Complete the Podman support implementation with testing and documentation:
    
    runtime_detector_test.go:
    - Comprehensive test suite for runtime detection logic
    - Environment variable configuration testing
    - Socket discovery and runtime preference testing
    - Factory integration and error handling testing
    
    README.md:
    - New "Container Runtime Support" section highlighting multi-runtime capability
    - Quick start guide with practical examples
    - Podman installation instructions for multiple platforms
    - Configuration options reference table
    - Benefits and security advantages of Podman
    - Emphasis on zero breaking changes for existing users
    
    This completes the full implementation of production-ready Podman support
    with automatic detection, comprehensive testing, and user documentation.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    d8aabb3 View commit details
    Browse the repository at this point in the history
  6. feat: implement runtime-aware container client factory

    - Add GetContainerClient() function with multi-runtime support
    - Implement runtime detection with Podman preference → Docker fallback
    - Add CLI configuration functions: SetRuntimePreference(), SetCustomSocket()
    - Include environment variable support for ACT_CONTAINER_RUNTIME, ACT_CONTAINER_SOCKET
    - Maintain backward compatibility with existing GetDockerClient() function
    
    This establishes the foundation for zero-breaking-change multi-runtime support.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    68422f8 View commit details
    Browse the repository at this point in the history
  7. fix: replace GetDockerClient() calls with runtime-aware factory

    Updates all container operations to use GetContainerClient() instead of
    direct GetDockerClient() calls:
    
    - docker_run.go: Update GetHostInfo() and connectDocker() methods
    - docker_pull.go: Update image pull operations
    - docker_images.go: Update image inspection and removal
    - docker_build.go: Update container build operations
    - docker_network.go: Update network operations
    - docker_volume.go: Update volume operations
    
    This resolves the critical architectural issue where old code paths
    bypassed the new runtime detection system.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    2c7de36 View commit details
    Browse the repository at this point in the history
  8. feat: integrate CLI flags with runtime detection system

    - Add early configureContainerRuntime() call before socket detection
    - Support --container-runtime and --container-socket CLI flags
    - Implement environment variable precedence: CLI > env > auto-detection
    - Handle ACT_CONTAINER_RUNTIME and ACT_CONTAINER_SOCKET variables
    - Remove duplicate runtime configuration to avoid conflicts
    
    This completes the CLI integration allowing users to control runtime
    selection via command-line flags or environment variables.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    d880064 View commit details
    Browse the repository at this point in the history
  9. docs: update ADRs with implementation status and notes

    - Update ADR-001: Container Runtime Abstraction - mark as implemented
    - Update ADR-002: Podman Integration Strategy - add implementation notes
    - Update ADR-003: Runtime Detection Mechanism - document CLI integration
    
    All ADRs now reflect the completed implementation with key architectural
    decisions and lessons learned from the development process.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    36dc32e View commit details
    Browse the repository at this point in the history
  10. feat: enhance Podman macOS machine socket detection

    - Add getPodmanMachineSocket() function to detect Podman machine API sockets
    - Enhanced GetSocketForRuntime() to handle SSH-based Podman connections on macOS
    - Improved connectPodman() with better socket detection and error handling
    - Support for gvproxy socket auto-discovery via 'podman machine inspect'
    
    This enables seamless Podman support on macOS where Podman runs in a VM
    and uses SSH-based connections through gvproxy socket forwarding.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    2d75c95 View commit details
    Browse the repository at this point in the history
  11. docs: update README with macOS Podman machine support

    - Add note about automatic macOS Podman machine socket detection
    - Clarify that SSH-based connections work without manual configuration
    - Improve user guidance for macOS Podman setup
    
    This helps users understand that the enhanced runtime detection
    handles macOS Podman machine complexity automatically.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    2103a08 View commit details
    Browse the repository at this point in the history
  12. docs: enhance ADR-003 with macOS Podman machine details

    - Add technical details about getPodmanMachineSocket() implementation
    - Document SSH proxy support and gvproxy socket detection
    - Include code example showing machine inspection approach
    - Update implementation notes with enhanced macOS support
    
    This provides architectural documentation for the macOS-specific
    Podman machine socket detection enhancement.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    e417d1b View commit details
    Browse the repository at this point in the history
  13. feat: enhance progress indicators for image operations

    - Add informative start/completion messages for image pulls
    - Improve progress display during download/extract operations
    - Show clear status updates (Pull complete, Already exists)
    - Use emoji indicators for better visual feedback (📥 ✅)
    
    This provides users with clear visibility into long-running image
    operations, reducing uncertainty during initial workflow runs.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    0b0ea8b View commit details
    Browse the repository at this point in the history
  14. docs: add comprehensive quick start guide

    - Performance optimization tips for fast development workflows
    - CLI flag reference for common scenarios (--pull=false, --jobs N)
    - Image caching strategies and smaller image recommendations
    - Troubleshooting guide for common issues and debugging
    
    This helps users optimize their act workflows and resolve common
    performance bottlenecks during development.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    b7f119e View commit details
    Browse the repository at this point in the history
  15. docs: add ADR-004 for user experience optimizations

    - Create comprehensive ADR documenting UX enhancement decisions
    - Cover progress indicators, performance options, and user guidance
    - Include implementation details and future considerations
    - Update ADR-002 with progress enhancement notes
    - Add ADR-004 to index for discoverability
    
    This provides architectural documentation for the user experience
    improvements and optimization strategies.
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    a1d261e View commit details
    Browse the repository at this point in the history
  16. docs: Add ADR-005 Apple Container evaluation and strategic decision

    Documents comprehensive evaluation of Apple Container runtime integration
    opportunity, including technical analysis, implementation challenges, and
    strategic decision to defer integration while monitoring development.
    
    Key decisions:
    - Defer Apple Container support due to early maturity stage
    - Architecture ready for future integration when appropriate
    - Quarterly review cycle starting Q3 2026
    - Estimated 4-6 weeks implementation effort when ready
    
    References: Apple Container project analysis and multi-runtime architecture
    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    deed80f View commit details
    Browse the repository at this point in the history
  17. ignore

    sravinet committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    f1e08b7 View commit details
    Browse the repository at this point in the history
Loading