.goreleaser.yaml RawHistoryFolder
1# Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml)
2# and generates the nefercap-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: nefercap
7
8before:
9 hooks:
10 - go mod verify
11
12builds:
13 - id: nefercap
14 main: ./cmd/nefercap
15 binary: nefercap
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: nefercap
30 ids: [nefercap]
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
38checksum:
39 name_template: checksums.txt
40 algorithm: sha256
41
42snapshot:
43 version_template: "{{ incpatch .Version }}-next"
44
45git:
46 tag_sort: -version:refname
47
48changelog:
49 sort: asc
50 use: github
51 filters:
52 exclude:
53 - "^style(\\([^)]+\\))?:"
54 - "^test(\\([^)]+\\))?:"
55 groups:
56 - title: Added
57 regexp: "^feat(\\([^)]+\\))?!?:"
58 order: 0
59 - title: Fixed
60 regexp: "^fix(\\([^)]+\\))?!?:"
61 order: 1
62 - title: Performance
63 regexp: "^perf(\\([^)]+\\))?!?:"
64 order: 2
65 - title: Changed
66 regexp: "^(refactor|build)(\\([^)]+\\))?!?:"
67 order: 3
68 - title: Documentation
69 regexp: "^docs(\\([^)]+\\))?!?:"
70 order: 4
71 - title: Maintenance
72 regexp: "^(chore|ci)(\\([^)]+\\))?!?:"
73 order: 5
74 - title: Other changes
75 order: 999
76
77release:
78 github:
79 owner: bnema
80 name: nefercap
81 draft: false
82 prerelease: auto
83 mode: replace
84 header: |
85 ## nefercap {{ .Tag }}
86
87 ### Install on Arch Linux
88
89 ```sh
90 paru -S nefercap-bin # this release, pre-built (x86_64, aarch64)
91 paru -S nefercap-git # latest main, built from source
92 ```
93
94 ### Install the pre-built archive
95
96 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
97
98 ```sh
99 gh release download {{ .Tag }} -R bnema/nefercap -p 'nefercap_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt
100 sha256sum -c --ignore-missing checksums.txt
101 gh attestation verify nefercap_{{ .Version }}_linux_amd64.tar.gz -R bnema/nefercap
102 ```
103
104 The archive holds the `nefercap` binary, the README and the license. Install the binary as `/usr/bin/nefercap`: NeferWL allows that path to capture by default. See the [README](https://github.com/bnema/nefercap#readme) for runtime dependencies.
105 footer: |
106 ---
107
108 **Full changelog**: https://github.com/bnema/nefercap/compare/{{ .PreviousTag }}...{{ .Tag }}
109
110aurs:
111 - name: nefercap-bin
112 ids: [nefercap]
113 homepage: https://github.com/bnema/nefercap
114 description: Screenshots and silent screen recording for Wayland, from one shortcut
115 maintainers:
116 - "bnema <b at bnema dot dev>"
117 license: GPL-3.0-only
118 # The release workflow verifies and publishes the generated PKGBUILD.
119 skip_upload: true
120 provides: [nefercap]
121 conflicts: [nefercap, nefercap-git]
122 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
123 depends:
124 - glibc
125 - wayland
126 - libxkbcommon
127 - vulkan-icd-loader
128 - vulkan-driver
129 optdepends:
130 - "ffmpeg: screen recording (libx264)"
131 - "wl-clipboard: copy screenshots to the clipboard"
132 - "neferwl: hidden-workspace capture, HUD exclusion and capture indicator"
133 package: |-
134 install -Dm755 ./nefercap "${pkgdir}/usr/bin/nefercap"
135 install -Dm644 ./README.md "${pkgdir}/usr/share/doc/nefercap/README.md"
136 install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"