mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-26 04:22:05 +02:00
37 lines
855 B
Markdown
37 lines
855 B
Markdown
|
# 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`][upx] is
|
||
|
the _de facto_ tool for the job.
|
||
|
|
||
|
[upx]: https://upx.github.io/
|
||
|
|
||
|
GoReleaser has been able to integrate with it via custom [build hooks][bhooks],
|
||
|
and now UPX has its own configuration section:
|
||
|
|
||
|
```yaml
|
||
|
# .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
|
||
|
```
|