-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Comparing changes
Open a pull request
base repository: nektos/act
base: master
head repository: sravinet/act
compare: master
- 17 commits
- 25 files changed
- 1 contributor
Commits on Feb 4, 2026
-
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.
Configuration menu - View commit details
-
Copy full SHA for 5928591 - Browse repository at this point
Copy the full SHA 5928591View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 48af2e5 - Browse repository at this point
Copy the full SHA 48af2e5View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for dc9be53 - Browse repository at this point
Copy the full SHA dc9be53View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 5e788a1 - Browse repository at this point
Copy the full SHA 5e788a1View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for d8aabb3 - Browse repository at this point
Copy the full SHA d8aabb3View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 68422f8 - Browse repository at this point
Copy the full SHA 68422f8View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 2c7de36 - Browse repository at this point
Copy the full SHA 2c7de36View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for d880064 - Browse repository at this point
Copy the full SHA d880064View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 36dc32e - Browse repository at this point
Copy the full SHA 36dc32eView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 2d75c95 - Browse repository at this point
Copy the full SHA 2d75c95View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 2103a08 - Browse repository at this point
Copy the full SHA 2103a08View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for e417d1b - Browse repository at this point
Copy the full SHA e417d1bView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 0b0ea8b - Browse repository at this point
Copy the full SHA 0b0ea8bView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for b7f119e - Browse repository at this point
Copy the full SHA b7f119eView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for a1d261e - Browse repository at this point
Copy the full SHA a1d261eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for deed80f - Browse repository at this point
Copy the full SHA deed80fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f1e08b7 - Browse repository at this point
Copy the full SHA f1e08b7View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...master