1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-26 04:22:05 +02:00
Carlos Alexandro Becker aaa9da33d5
fix: disable upx for now
2023-05-05 04:26:12 +00:00

1.3 KiB

UPX

Since: v1.18

Having small binary sizes are important, and Go is known for generating rather big binaries.

GoReleaser has had -s -w as default ldflags since the beginning, which help shaving off some bytes, but if you want to shave it even more, upx is the de facto tool for the job.

GoReleaser has been able to integrate with it via custom [build hooks][bhooks], and now UPX has its own configuration section:

!!! warning upx does not support all platforms! Make sure to check their issues and to test your packed binaries first.

Namely, _macOS Ventura_ is not supported at the moment.

Future GoReleaser releases will add more filters so you can cherry-pick
which platforms you want to pack or not.
# .goreleaser.yaml
upx:
  -
    # Whether to enable it or not.
    enabled: true

    # Filter by build ID.
    ids: [ build1, build2 ]

    # Compress argument.
    # Valid options are from '1' (faster) to '9' (better), and 'best'.
    compress: best

    # Whether to try LZMA (slower).
    lzma: true

    # Whether to try all methods and filters (slow).
    brute: true

!!! info If upx is not in $PATH, GoReleaser will automatically avoid running it.