Skip to content

Replace Docker with binary release for improved performance #1

@alexrios

Description

@alexrios

Issue Description

Current Situation

The Goverhaul GitHub Action currently uses a Docker-based implementation, which has several drawbacks:

  • Slower execution due to Docker build time
  • Higher resource usage from Docker overhead
  • More complex implementation requiring Dockerfile and entrypoint script
  • Potential compatibility issues across different GitHub Actions runners

Proposed Solution

Replace the current Docker-based implementation with a direct binary release approach:

  • Modify action.yml to use a composite action instead of Docker
  • Add steps to download the Goverhaul binary release directly
  • Remove Dockerfile and entrypoint.sh as they will no longer be needed
  • Update documentation to reflect the new implementation

Benefits

  • Faster execution: Eliminating Docker build time will result in quicker action runs
  • Reduced resource usage: Removing Docker overhead means more efficient resource utilization
  • Simpler implementation: Direct binary execution simplifies the codebase
  • Better compatibility: Works more consistently across different GitHub Actions runners

Implementation Notes

The implementation would require:

  1. Changing the runs section in action.yml from using: 'docker' to using: 'composite'
  2. Adding steps to download and execute the Goverhaul binary directly
  3. Ensuring all inputs (path, config, verbose) continue to function as expected
  4. Updating documentation to reflect the new approach

This change would maintain full backward compatibility with existing workflows while providing a more efficient implementation.

Questions

  • What is the latest stable binary release version we should target?
  • Should we support multiple platforms or focus on the common GitHub Actions environments?
  • Are there any specific performance benchmarks we want to achieve?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions