# GoReleaser config — builds cross-platform binaries and GitHub Release # artifacts for zut. The release workflow creates conventional-commit-based # v0.x tags, then invokes GoReleaser for that immutable tag. version: 2 project_name: zut before: hooks: - go mod tidy builds: - id: zut main: ./cmd/zut binary: zut env: - CGO_ENABLED=0 goos: [linux, darwin, windows] goarch: [amd64, arm64] # Windows/arm64 is shipped by Go but rarely used — skip to keep the # release artifact list tidy. ignore: - goos: windows goarch: arm64 flags: - -trimpath ldflags: - -s -w - -X main.version={{.Version}} - -X main.commit={{.Commit}} - -X main.date={{.Date}} archives: - id: zut # Human-friendly name: zut_0.1.0_darwin_arm64.tar.gz name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" files: - LICENSE - README.md format_overrides: - goos: windows formats: [zip] checksum: name_template: "checksums.txt" algorithm: sha256 snapshot: version_template: "{{ incpatch .Version }}-next" git: # Git's version-aware sort selects semantic versions correctly. tag_sort: -version:refname changelog: sort: asc use: github filters: # Styling-only commits are neither releasable nor useful release notes. exclude: - "^style:" groups: - title: Added regexp: "^feat(\\([^)]+\\))?!?:" order: 0 - title: Fixed regexp: "^fix(\\([^)]+\\))?!?:" order: 1 - title: Changed regexp: "^(perf|refactor|build)(\\([^)]+\\))?!?:" order: 2 - title: Maintenance regexp: "^(chore|ci)(\\([^)]+\\))?!?:" order: 3 - title: Documentation regexp: "^docs(\\([^)]+\\))?!?:" order: 4 - title: Tests regexp: "^test(\\([^)]+\\))?!?:" order: 5 - title: Other changes order: 999 release: github: owner: bnema name: zut draft: false prerelease: auto header: | ## zut {{ .Tag }} Install with: ```bash curl -fsSL https://raw.githubusercontent.com/bnema/zut/main/install.sh | bash ``` Or download a binary below, verify it with `checksums.txt`, and add it to your `$PATH`.