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