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