build: add goreleaser config for linux/amd64 and darwin/arm64
- commit
- c5f4fce610826a0623f8c890d9aeeeadeed8b70d
- author
- brice · · 2026-07-17 06:55 UTC
- parent
- e5b4925
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +137 -0
A .goreleaser.yaml +137 -0
| @@ -0,0 +1,137 @@ | |||
| 1 | + | version: 2 | |
| 2 | + | ||
| 3 | + | project_name: vev | |
| 4 | + | ||
| 5 | + | before: | |
| 6 | + | hooks: | |
| 7 | + | - go mod tidy | |
| 8 | + | ||
| 9 | + | builds: | |
| 10 | + | - id: vev | |
| 11 | + | main: . | |
| 12 | + | binary: vev | |
| 13 | + | env: | |
| 14 | + | - CGO_ENABLED=0 | |
| 15 | + | goos: | |
| 16 | + | - linux | |
| 17 | + | - darwin | |
| 18 | + | goarch: | |
| 19 | + | - amd64 | |
| 20 | + | - arm64 | |
| 21 | + | ignore: | |
| 22 | + | - goos: linux | |
| 23 | + | goarch: arm64 | |
| 24 | + | - goos: darwin | |
| 25 | + | goarch: amd64 | |
| 26 | + | ldflags: | |
| 27 | + | - -s -w | |
| 28 | + | - -X github.com/bnema/vev/internal/app.version={{.Version}} | |
| 29 | + | - -X github.com/bnema/vev/internal/app.commit={{.ShortCommit}} | |
| 30 | + | - -X github.com/bnema/vev/internal/app.date={{.Date}} | |
| 31 | + | ||
| 32 | + | archives: | |
| 33 | + | - id: default | |
| 34 | + | # Contract consumed by install.sh and the AUR package block: | |
| 35 | + | # vev_linux_x86_64.tar.gz / vev_darwin_arm64.tar.gz | |
| 36 | + | name_template: >- | |
| 37 | + | {{ .ProjectName }}_{{ .Os }}_{{ if eq .Arch "amd64" }}x86_64{{ else }}{{ .Arch }}{{ end }} | |
| 38 | + | formats: ['tar.gz'] | |
| 39 | + | files: | |
| 40 | + | - LICENSE | |
| 41 | + | - README.md | |
| 42 | + | - scripts/vev-bar-top-right | |
| 43 | + | - scripts/vev-bar-bottom-right | |
| 44 | + | ||
| 45 | + | checksum: | |
| 46 | + | # Fixed name: install.sh downloads .../download/<tag>/checksums.txt | |
| 47 | + | name_template: checksums.txt | |
| 48 | + | algorithm: sha256 | |
| 49 | + | ||
| 50 | + | changelog: | |
| 51 | + | sort: asc | |
| 52 | + | use: github | |
| 53 | + | filters: | |
| 54 | + | exclude: | |
| 55 | + | - '^docs:' | |
| 56 | + | - '^test:' | |
| 57 | + | - '^ci:' | |
| 58 | + | - '^chore:' | |
| 59 | + | - '^build\(deps\):' | |
| 60 | + | - Merge pull request | |
| 61 | + | - Merge branch | |
| 62 | + | groups: | |
| 63 | + | - title: Features | |
| 64 | + | regexp: '^feat(\(.+\))?:' | |
| 65 | + | order: 0 | |
| 66 | + | - title: Bug Fixes | |
| 67 | + | regexp: '^fix(\(.+\))?:' | |
| 68 | + | order: 1 | |
| 69 | + | - title: Performance | |
| 70 | + | regexp: '^perf(\(.+\))?:' | |
| 71 | + | order: 2 | |
| 72 | + | - title: Refactoring | |
| 73 | + | regexp: '^refactor(\(.+\))?:' | |
| 74 | + | order: 3 | |
| 75 | + | - title: Other Changes | |
| 76 | + | order: 999 | |
| 77 | + | ||
| 78 | + | release: | |
| 79 | + | github: | |
| 80 | + | owner: bnema | |
| 81 | + | name: vev | |
| 82 | + | draft: false | |
| 83 | + | replace_existing_draft: true | |
| 84 | + | prerelease: auto | |
| 85 | + | make_latest: true | |
| 86 | + | footer: | | |
| 87 | + | --- | |
| 88 | + | ||
| 89 | + | ## Install | |
| 90 | + | ||
| 91 | + | ### Script (Linux x86_64, macOS arm64) | |
| 92 | + | ```sh | |
| 93 | + | curl -fsSL https://raw.githubusercontent.com/bnema/vev/main/install.sh | sh | |
| 94 | + | ``` | |
| 95 | + | ||
| 96 | + | ### Arch Linux | |
| 97 | + | ```sh | |
| 98 | + | yay -S vev-bin | |
| 99 | + | ``` | |
| 100 | + | ||
| 101 | + | ### macOS note | |
| 102 | + | The darwin binary is ad-hoc signed by the Go toolchain, not notarized. | |
| 103 | + | Installing via the script or `curl` avoids the quarantine attribute; | |
| 104 | + | if you downloaded the archive with a browser, Gatekeeper will block it. | |
| 105 | + | Removing the attribute bypasses a Gatekeeper security control — only do | |
| 106 | + | it for the vev binary itself, after verifying its checksum: | |
| 107 | + | ```sh | |
| 108 | + | xattr -d com.apple.quarantine ~/.local/bin/vev | |
| 109 | + | ``` | |
| 110 | + | ||
| 111 | + | **Full Changelog**: https://github.com/bnema/vev/compare/{{ .PreviousTag }}...{{ .Tag }} | |
| 112 | + | ||
| 113 | + | git: | |
| 114 | + | tag_sort: smartsemver | |
| 115 | + | ||
| 116 | + | aurs: | |
| 117 | + | - name: vev-bin | |
| 118 | + | ids: ['default'] | |
| 119 | + | homepage: https://github.com/bnema/vev | |
| 120 | + | description: Terminal multiplexer with a per-user daemon, server-side rendering, and minimal socket/SSH diffs | |
| 121 | + | maintainers: | |
| 122 | + | - bnema <b at bnema dot dev> | |
| 123 | + | license: MIT | |
| 124 | + | private_key: '{{ .Env.AUR_KEY }}' | |
| 125 | + | git_url: ssh://aur@aur.archlinux.org/vev-bin.git | |
| 126 | + | # auto: prerelease tags (v1.2.3-rc.1) are not pushed to AUR. | |
| 127 | + | skip_upload: auto | |
| 128 | + | provides: | |
| 129 | + | - vev | |
| 130 | + | conflicts: | |
| 131 | + | - vev | |
| 132 | + | package: |- | |
| 133 | + | install -Dm755 "./vev" "${pkgdir}/usr/bin/vev" | |
| 134 | + | install -Dm755 "./scripts/vev-bar-top-right" "${pkgdir}/usr/bin/vev-bar-top-right" | |
| 135 | + | install -Dm755 "./scripts/vev-bar-bottom-right" "${pkgdir}/usr/bin/vev-bar-bottom-right" | |
| 136 | + | install -Dm644 "./LICENSE" "${pkgdir}/usr/share/licenses/vev-bin/LICENSE" | |
| 137 | + | commit_msg_template: 'Update to {{ .Tag }}' | |
| @@ -0,0 +1,137 @@ | |||||
| 1 | + | version: 2 | |||
| 2 | + | ||||
| 3 | + | project_name: vev | |||
| 4 | + | ||||
| 5 | + | before: | |||
| 6 | + | hooks: | |||
| 7 | + | - go mod tidy | |||
| 8 | + | ||||
| 9 | + | builds: | |||
| 10 | + | - id: vev | |||
| 11 | + | main: . | |||
| 12 | + | binary: vev | |||
| 13 | + | env: | |||
| 14 | + | - CGO_ENABLED=0 | |||
| 15 | + | goos: | |||
| 16 | + | - linux | |||
| 17 | + | - darwin | |||
| 18 | + | goarch: | |||
| 19 | + | - amd64 | |||
| 20 | + | - arm64 | |||
| 21 | + | ignore: | |||
| 22 | + | - goos: linux | |||
| 23 | + | goarch: arm64 | |||
| 24 | + | - goos: darwin | |||
| 25 | + | goarch: amd64 | |||
| 26 | + | ldflags: | |||
| 27 | + | - -s -w | |||
| 28 | + | - -X github.com/bnema/vev/internal/app.version={{.Version}} | |||
| 29 | + | - -X github.com/bnema/vev/internal/app.commit={{.ShortCommit}} | |||
| 30 | + | - -X github.com/bnema/vev/internal/app.date={{.Date}} | |||
| 31 | + | ||||
| 32 | + | archives: | |||
| 33 | + | - id: default | |||
| 34 | + | # Contract consumed by install.sh and the AUR package block: | |||
| 35 | + | # vev_linux_x86_64.tar.gz / vev_darwin_arm64.tar.gz | |||
| 36 | + | name_template: >- | |||
| 37 | + | {{ .ProjectName }}_{{ .Os }}_{{ if eq .Arch "amd64" }}x86_64{{ else }}{{ .Arch }}{{ end }} | |||
| 38 | + | formats: ['tar.gz'] | |||
| 39 | + | files: | |||
| 40 | + | - LICENSE | |||
| 41 | + | - README.md | |||
| 42 | + | - scripts/vev-bar-top-right | |||
| 43 | + | - scripts/vev-bar-bottom-right | |||
| 44 | + | ||||
| 45 | + | checksum: | |||
| 46 | + | # Fixed name: install.sh downloads .../download/<tag>/checksums.txt | |||
| 47 | + | name_template: checksums.txt | |||
| 48 | + | algorithm: sha256 | |||
| 49 | + | ||||
| 50 | + | changelog: | |||
| 51 | + | sort: asc | |||
| 52 | + | use: github | |||
| 53 | + | filters: | |||
| 54 | + | exclude: | |||
| 55 | + | - '^docs:' | |||
| 56 | + | - '^test:' | |||
| 57 | + | - '^ci:' | |||
| 58 | + | - '^chore:' | |||
| 59 | + | - '^build\(deps\):' | |||
| 60 | + | - Merge pull request | |||
| 61 | + | - Merge branch | |||
| 62 | + | groups: | |||
| 63 | + | - title: Features | |||
| 64 | + | regexp: '^feat(\(.+\))?:' | |||
| 65 | + | order: 0 | |||
| 66 | + | - title: Bug Fixes | |||
| 67 | + | regexp: '^fix(\(.+\))?:' | |||
| 68 | + | order: 1 | |||
| 69 | + | - title: Performance | |||
| 70 | + | regexp: '^perf(\(.+\))?:' | |||
| 71 | + | order: 2 | |||
| 72 | + | - title: Refactoring | |||
| 73 | + | regexp: '^refactor(\(.+\))?:' | |||
| 74 | + | order: 3 | |||
| 75 | + | - title: Other Changes | |||
| 76 | + | order: 999 | |||
| 77 | + | ||||
| 78 | + | release: | |||
| 79 | + | github: | |||
| 80 | + | owner: bnema | |||
| 81 | + | name: vev | |||
| 82 | + | draft: false | |||
| 83 | + | replace_existing_draft: true | |||
| 84 | + | prerelease: auto | |||
| 85 | + | make_latest: true | |||
| 86 | + | footer: | | |||
| 87 | + | --- | |||
| 88 | + | ||||
| 89 | + | ## Install | |||
| 90 | + | ||||
| 91 | + | ### Script (Linux x86_64, macOS arm64) | |||
| 92 | + | ```sh | |||
| 93 | + | curl -fsSL https://raw.githubusercontent.com/bnema/vev/main/install.sh | sh | |||
| 94 | + | ``` | |||
| 95 | + | ||||
| 96 | + | ### Arch Linux | |||
| 97 | + | ```sh | |||
| 98 | + | yay -S vev-bin | |||
| 99 | + | ``` | |||
| 100 | + | ||||
| 101 | + | ### macOS note | |||
| 102 | + | The darwin binary is ad-hoc signed by the Go toolchain, not notarized. | |||
| 103 | + | Installing via the script or `curl` avoids the quarantine attribute; | |||
| 104 | + | if you downloaded the archive with a browser, Gatekeeper will block it. | |||
| 105 | + | Removing the attribute bypasses a Gatekeeper security control — only do | |||
| 106 | + | it for the vev binary itself, after verifying its checksum: | |||
| 107 | + | ```sh | |||
| 108 | + | xattr -d com.apple.quarantine ~/.local/bin/vev | |||
| 109 | + | ``` | |||
| 110 | + | ||||
| 111 | + | **Full Changelog**: https://github.com/bnema/vev/compare/{{ .PreviousTag }}...{{ .Tag }} | |||
| 112 | + | ||||
| 113 | + | git: | |||
| 114 | + | tag_sort: smartsemver | |||
| 115 | + | ||||
| 116 | + | aurs: | |||
| 117 | + | - name: vev-bin | |||
| 118 | + | ids: ['default'] | |||
| 119 | + | homepage: https://github.com/bnema/vev | |||
| 120 | + | description: Terminal multiplexer with a per-user daemon, server-side rendering, and minimal socket/SSH diffs | |||
| 121 | + | maintainers: | |||
| 122 | + | - bnema <b at bnema dot dev> | |||
| 123 | + | license: MIT | |||
| 124 | + | private_key: '{{ .Env.AUR_KEY }}' | |||
| 125 | + | git_url: ssh://aur@aur.archlinux.org/vev-bin.git | |||
| 126 | + | # auto: prerelease tags (v1.2.3-rc.1) are not pushed to AUR. | |||
| 127 | + | skip_upload: auto | |||
| 128 | + | provides: | |||
| 129 | + | - vev | |||
| 130 | + | conflicts: | |||
| 131 | + | - vev | |||
| 132 | + | package: |- | |||
| 133 | + | install -Dm755 "./vev" "${pkgdir}/usr/bin/vev" | |||
| 134 | + | install -Dm755 "./scripts/vev-bar-top-right" "${pkgdir}/usr/bin/vev-bar-top-right" | |||
| 135 | + | install -Dm755 "./scripts/vev-bar-bottom-right" "${pkgdir}/usr/bin/vev-bar-bottom-right" | |||
| 136 | + | install -Dm644 "./LICENSE" "${pkgdir}/usr/share/licenses/vev-bin/LICENSE" | |||
| 137 | + | commit_msg_template: 'Update to {{ .Tag }}' | |||