.goreleaser.yaml RawHistoryFolder
1# Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml)
2# and generates the neferbar-bin PKGBUILD. The workflow verifies that PKGBUILD
3# with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.
4version: 2
5
6project_name: neferbar
7
8before:
9 hooks:
10 - go mod verify
11
12builds:
13 - id: neferbar
14 main: ./cmd/neferbar
15 binary: neferbar
16 env:
17 - CGO_ENABLED=0
18 goos: [linux]
19 goarch: [amd64, arm64]
20 flags:
21 - -trimpath
22 - -buildmode=pie
23 ldflags:
24 - -s -w -X main.version={{ .Version }}
25 # Same inputs give the same binary.
26 mod_timestamp: "{{ .CommitTimestamp }}"
27
28archives:
29 - id: neferbar
30 ids: [neferbar]
31 name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
32 formats: [tar.gz]
33 # Everything the PKGBUILD package() installs, at the paths of the repo.
34 files:
35 - LICENSE
36 - README.md
37 - examples/**/*
38
39checksum:
40 name_template: checksums.txt
41 algorithm: sha256
42
43snapshot:
44 version_template: "{{ incpatch .Version }}-next"
45
46git:
47 tag_sort: -version:refname
48
49changelog:
50 sort: asc
51 use: github
52 filters:
53 exclude:
54 - "^style(\\([^)]+\\))?:"
55 - "^test(\\([^)]+\\))?:"
56 groups:
57 - title: Added
58 regexp: "^feat(\\([^)]+\\))?!?:"
59 order: 0
60 - title: Fixed
61 regexp: "^fix(\\([^)]+\\))?!?:"
62 order: 1
63 - title: Performance
64 regexp: "^perf(\\([^)]+\\))?!?:"
65 order: 2
66 - title: Changed
67 regexp: "^(refactor|build)(\\([^)]+\\))?!?:"
68 order: 3
69 - title: Documentation
70 regexp: "^docs(\\([^)]+\\))?!?:"
71 order: 4
72 - title: Maintenance
73 regexp: "^(chore|ci)(\\([^)]+\\))?!?:"
74 order: 5
75 - title: Other changes
76 order: 999
77
78release:
79 github:
80 owner: bnema
81 name: neferbar
82 draft: false
83 prerelease: auto
84 mode: replace
85 header: |
86 ## neferbar {{ .Tag }}
87
88 ### Install on Arch Linux
89
90 ```sh
91 paru -S neferbar-bin # this release, pre-built (x86_64, aarch64)
92 paru -S neferbar-git # latest main, built from source
93 ```
94
95 ### Install the pre-built archive
96
97 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
98
99 ```sh
100 gh release download {{ .Tag }} -R bnema/neferbar -p 'neferbar_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt
101 sha256sum -c --ignore-missing checksums.txt
102 gh attestation verify neferbar_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferbar
103 ```
104
105 The archive holds the `neferbar` binary, the example configs and scripts, the README and the license. See the [README](https://github.com/bnema/neferbar#readme) for runtime dependencies.
106 footer: |
107 ---
108
109 **Full changelog**: https://github.com/bnema/neferbar/compare/{{ .PreviousTag }}...{{ .Tag }}
110
111aurs:
112 - name: neferbar-bin
113 ids: [neferbar]
114 homepage: https://github.com/bnema/neferbar
115 description: One-cell-high, terminal-style status bar for Wayland, driven by scripts
116 maintainers:
117 - "bnema <b at bnema dot dev>"
118 license: MIT
119 # The release workflow verifies and publishes the generated PKGBUILD.
120 skip_upload: true
121 provides: [neferbar]
122 conflicts: [neferbar, neferbar-git]
123 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
124 # fontconfig provides fc-match, which finds the font files.
125 depends:
126 - glibc
127 - fontconfig
128 - libxkbcommon
129 - vulkan-icd-loader
130 - vulkan-driver
131 optdepends:
132 - "ttf-jetbrains-mono-nerd: default font, with the icons modules print"
133 package: |-
134 install -Dm755 ./neferbar "${pkgdir}/usr/bin/neferbar"
135 install -Dm644 ./README.md "${pkgdir}/usr/share/doc/neferbar/README.md"
136 cp -r ./examples "${pkgdir}/usr/share/doc/neferbar/examples"
137 install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"