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