Skip to content

Add riscv64 to release binaries #5419

@gounthar

Description

@gounthar

Is your feature request related to a problem? Please describe.

There are no riscv64 release binaries for lazygit. Users on RISC-V hardware (e.g. VisionFive 2, LicheePi 4A, SiFive boards) must build from source, which is straightforward but inconvenient for a pure Go project that already ships arm64 and armv6 binaries.

Describe the solution you'd like

Add riscv64 to the goarch list in .goreleaser.yml:

    goarch:
      - amd64
      - arm
      - arm64
      - '386'
      - riscv64

Since lazygit builds with CGO_ENABLED=0, the riscv64 target requires no special toolchain or cross-compilation setup. Go has supported GOARCH=riscv64 as a first-class target since Go 1.14.

This would produce lazygit_<version>_linux_riscv64.tar.gz (and freebsd_riscv64) in each release, with no changes to the build pipeline itself.

Describe alternatives you've considered

  • Building from source on the target board. This works but means riscv64 users cannot use package managers or install scripts that pull release binaries.
  • Distribution-level packaging (Arch RISC-V, Debian ports). Some distros carry lazygit already, but official release binaries are the most portable option.

Additional context

Lazygit builds successfully on native riscv64 hardware. The test suite passes except for one timing-sensitive test (TestNewCmdTaskInstantStop) that hits a race condition on slower hardware, not related to riscv64 support itself.

Build and test run on native riscv64: https://github.com/gounthar/lazygit/actions/runs/23536886583

Happy to open a PR if this seems reasonable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions