.goreleaser.yml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. before:
  2. hooks:
  3. - go mod download
  4. - go mod tidy
  5. builds:
  6. -
  7. id: ntfy_linux_amd64
  8. binary: ntfy
  9. env:
  10. - CGO_ENABLED=1 # required for go-sqlite3
  11. tags: [sqlite_omit_load_extension,osusergo,netgo]
  12. ldflags:
  13. - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
  14. goos: [linux]
  15. goarch: [amd64]
  16. hooks:
  17. post:
  18. - upx "{{ .Path }}" # apt install upx
  19. -
  20. id: ntfy_linux_armv6
  21. binary: ntfy
  22. env:
  23. - CGO_ENABLED=1 # required for go-sqlite3
  24. - CC=arm-linux-gnueabi-gcc # apt install gcc-arm-linux-gnueabi
  25. tags: [sqlite_omit_load_extension,osusergo,netgo]
  26. ldflags:
  27. - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
  28. goos: [linux]
  29. goarch: [arm]
  30. goarm: [6]
  31. # No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
  32. -
  33. id: ntfy_linux_armv7
  34. binary: ntfy
  35. env:
  36. - CGO_ENABLED=1 # required for go-sqlite3
  37. - CC=arm-linux-gnueabi-gcc # apt install gcc-arm-linux-gnueabi
  38. tags: [sqlite_omit_load_extension,osusergo,netgo]
  39. ldflags:
  40. - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
  41. goos: [linux]
  42. goarch: [arm]
  43. goarm: [7]
  44. # No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
  45. -
  46. id: ntfy_linux_arm64
  47. binary: ntfy
  48. env:
  49. - CGO_ENABLED=1 # required for go-sqlite3
  50. - CC=aarch64-linux-gnu-gcc # apt install gcc-aarch64-linux-gnu
  51. tags: [sqlite_omit_load_extension,osusergo,netgo]
  52. ldflags:
  53. - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
  54. goos: [linux]
  55. goarch: [arm64]
  56. # No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
  57. -
  58. id: ntfy_windows_amd64
  59. binary: ntfy
  60. env:
  61. - CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3
  62. tags: [noserver] # don't include server files
  63. ldflags:
  64. - "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
  65. goos: [windows]
  66. goarch: [amd64]
  67. hooks:
  68. post:
  69. - upx "{{ .Path }}" # apt install upx
  70. -
  71. id: ntfy_darwin_all
  72. binary: ntfy
  73. env:
  74. - CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3
  75. tags: [noserver] # don't include server files
  76. ldflags:
  77. - "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
  78. goos: [darwin]
  79. goarch: [amd64, arm64] # will be combined to "universal binary" (see below)
  80. nfpms:
  81. -
  82. package_name: ntfy
  83. homepage: https://heckel.io/ntfy
  84. maintainer: Philipp C. Heckel <philipp.heckel@gmail.com>
  85. description: Simple pub-sub notification service
  86. license: Apache 2.0
  87. formats:
  88. - deb
  89. - rpm
  90. bindir: /usr/bin
  91. contents:
  92. - src: server/server.yml
  93. dst: /etc/ntfy/server.yml
  94. type: "config|noreplace"
  95. - src: server/ntfy.service
  96. dst: /lib/systemd/system/ntfy.service
  97. - src: client/client.yml
  98. dst: /etc/ntfy/client.yml
  99. type: "config|noreplace"
  100. - src: client/ntfy-client.service
  101. dst: /lib/systemd/system/ntfy-client.service
  102. - dst: /var/cache/ntfy
  103. type: dir
  104. - dst: /var/cache/ntfy/attachments
  105. type: dir
  106. - dst: /var/lib/ntfy
  107. type: dir
  108. - dst: /usr/share/ntfy/logo.png
  109. src: web/public/static/img/ntfy.png
  110. scripts:
  111. preinstall: "scripts/preinst.sh"
  112. postinstall: "scripts/postinst.sh"
  113. preremove: "scripts/prerm.sh"
  114. postremove: "scripts/postrm.sh"
  115. archives:
  116. -
  117. id: ntfy_linux
  118. builds:
  119. - ntfy_linux_amd64
  120. - ntfy_linux_armv6
  121. - ntfy_linux_armv7
  122. - ntfy_linux_arm64
  123. wrap_in_directory: true
  124. files:
  125. - LICENSE
  126. - README.md
  127. - server/server.yml
  128. - server/ntfy.service
  129. - client/client.yml
  130. - client/ntfy-client.service
  131. replacements:
  132. amd64: x86_64
  133. -
  134. id: ntfy_windows
  135. builds:
  136. - ntfy_windows_amd64
  137. format: zip
  138. wrap_in_directory: true
  139. files:
  140. - LICENSE
  141. - README.md
  142. - client/client.yml
  143. replacements:
  144. amd64: x86_64
  145. -
  146. id: ntfy_darwin
  147. builds:
  148. - ntfy_darwin_all
  149. wrap_in_directory: true
  150. files:
  151. - LICENSE
  152. - README.md
  153. - client/client.yml
  154. replacements:
  155. darwin: macOS
  156. universal_binaries:
  157. -
  158. id: ntfy_darwin_all
  159. replace: true
  160. name_template: ntfy
  161. checksum:
  162. name_template: 'checksums.txt'
  163. snapshot:
  164. name_template: "{{ .Tag }}-next"
  165. changelog:
  166. sort: asc
  167. filters:
  168. exclude:
  169. - '^docs:'
  170. - '^test:'
  171. dockers:
  172. - image_templates:
  173. - &amd64_image "binwiederhier/ntfy:{{ .Tag }}-amd64"
  174. use: buildx
  175. dockerfile: Dockerfile
  176. goarch: amd64
  177. build_flag_templates:
  178. - "--platform=linux/amd64"
  179. - image_templates:
  180. - &arm64v8_image "binwiederhier/ntfy:{{ .Tag }}-arm64v8"
  181. use: buildx
  182. dockerfile: Dockerfile
  183. goarch: arm64
  184. build_flag_templates:
  185. - "--platform=linux/arm64/v8"
  186. - image_templates:
  187. - &armv7_image "binwiederhier/ntfy:{{ .Tag }}-armv7"
  188. use: buildx
  189. dockerfile: Dockerfile
  190. goarch: arm
  191. goarm: 7
  192. build_flag_templates:
  193. - "--platform=linux/arm/v7"
  194. - image_templates:
  195. - &armv6_image "binwiederhier/ntfy:{{ .Tag }}-armv6"
  196. use: buildx
  197. dockerfile: Dockerfile
  198. goarch: arm
  199. goarm: 6
  200. build_flag_templates:
  201. - "--platform=linux/arm/v6"
  202. docker_manifests:
  203. - name_template: "binwiederhier/ntfy:latest"
  204. image_templates:
  205. - *amd64_image
  206. - *arm64v8_image
  207. - *armv7_image
  208. - *armv6_image
  209. - name_template: "binwiederhier/ntfy:{{ .Tag }}"
  210. image_templates:
  211. - *amd64_image
  212. - *arm64v8_image
  213. - *armv7_image
  214. - *armv6_image