Skip to content

[Feature]: Add cross-platform binary builds to GoReleaser #144

Description

@mrhillsman

Problem Statement

GoReleaser is currently configured to build only linux/amd64. Users who work from macOS (common for developers targeting remote OpenShift clusters) have no pre-built binary and must build from source with CGo enabled (required by the SQLite dependency), which adds friction.

Proposed Solution

Add darwin/amd64 and darwin/arm64 build targets to .goreleaser.yaml. Since the project uses github.com/mattn/go-sqlite3 (CGo), cross-compilation requires either:

  • Cross-compilation toolchains in CI (e.g. zig cc as the C compiler)
  • Separate macOS CI runners
  • Switching to a pure-Go SQLite driver like modernc.org/sqlite to eliminate the CGo requirement entirely

Alternatives Considered

  • Status quo — macOS users build from source. Acceptable for an internal tool but not ideal for GA.
  • Pure-Go SQLite drivermodernc.org/sqlite is a CGo-free alternative. This would make cross-compilation trivial but requires migration and testing of the audit system.

Area

CLI / Configuration

Additional Context

The container image only targets linux/amd64 as well. Multi-arch container images (linux/arm64) could be a follow-up if there's demand for ARM-based OpenShift nodes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions