.goreleaser.yml 5.9 KB

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