.goreleaser.yml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. project_name: OliveTin
  2. version: 2
  3. before:
  4. hooks:
  5. - make service-prep
  6. - make windows-resources VERSION={{ .Version }}
  7. builds:
  8. - skip: '{{ isEnvSet "GORELEASER_SKIP_BUILD" }}'
  9. env:
  10. - CGO_ENABLED=0
  11. binary: OliveTin
  12. main: .
  13. dir: service
  14. goos:
  15. - linux
  16. - windows
  17. - darwin
  18. - freebsd
  19. goarch:
  20. - amd64
  21. - arm64
  22. - arm
  23. - riscv64
  24. goarm:
  25. - 5 # For old RPIs
  26. - 6
  27. - 7
  28. ignore:
  29. - goos: darwin
  30. goarch: arm # Mac does not work on [32bit] arm
  31. - goos: windows
  32. goarch: arm
  33. - goos: windows # Does anyone use Windows on arm64?
  34. goarch: arm64
  35. ldflags:
  36. - -s -w -X main.version={{.Version}} -X main.commit={{.ShortCommit}} -X main.date={{ .CommitDate }}
  37. checksum:
  38. name_template: 'checksums.txt'
  39. extra_files:
  40. - glob: ./dist/OliveTin-windows-amd64.msi
  41. snapshot:
  42. version_template: "{{ .Branch }}-{{ .ShortCommit }}"
  43. changelog:
  44. sort: asc
  45. groups:
  46. - title: 'Security'
  47. regexp: '^.*?security(\([[:word:]]+\))??!?:.+$'
  48. order: 0
  49. - title: 'Features'
  50. regexp: '^.*?feat.*?(\([[:word:]]+\))??!?:.+$'
  51. order: 1
  52. - title: 'Bug fixes'
  53. regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
  54. order: 2
  55. - title: Others
  56. order: 999
  57. filters:
  58. exclude:
  59. - '^docs:'
  60. - '^test:'
  61. - '^cicd:'
  62. - '^chore:'
  63. - '^release:'
  64. - '^refactor:'
  65. - '^Merge branch'
  66. archives:
  67. - formats: tar.gz
  68. files:
  69. - config.yaml
  70. - LICENSE
  71. - README.md
  72. - src: Dockerfile.singlearch
  73. dst: Dockerfile
  74. - examples/backupScript.sh
  75. - webui
  76. - var
  77. name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}{{ .Arm }}"
  78. wrap_in_directory: true
  79. format_overrides:
  80. - goos: windows
  81. formats: zip
  82. # dockers_v2: single multi-platform build with buildx; keeps default provenance + SBOM.
  83. # Replaces legacy dockers + docker_manifests (avoids "is a manifest list" when attestations are on).
  84. dockers_v2:
  85. - dockerfile: Dockerfile.multiarches
  86. images:
  87. - docker.io/jamesread/olivetin
  88. - ghcr.io/olivetin/olivetin
  89. tags:
  90. - "{{ .Tag }}"
  91. - latest
  92. - latest-3k
  93. platforms:
  94. - linux/amd64
  95. - linux/arm64
  96. extra_files:
  97. - webui/
  98. - var/entities/
  99. - config.yaml
  100. - var/helper-actions/
  101. - examples/backupScript.sh
  102. labels:
  103. org.opencontainers.image.revision: "{{ .FullCommit }}"
  104. org.opencontainers.image.version: "{{ .Tag }}"
  105. sbom: true
  106. nfpms:
  107. - id: default
  108. maintainer: James Read <contact@jread.com>
  109. description: OliveTin is a web interface for running Linux shell commands.
  110. homepage: https://github.com/OliveTin/OliveTin
  111. license: AGPL-3.0
  112. formats:
  113. - deb
  114. - rpm
  115. bindir: /usr/local/bin/
  116. file_name_template: '{{ .PackageName }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'
  117. contents:
  118. - src: var/systemd/OliveTin.service
  119. dst: /etc/systemd/system/OliveTin.service
  120. - src: webui/
  121. dst: /var/www/olivetin/
  122. type: tree
  123. - src: config.yaml
  124. dst: /etc/OliveTin/config.yaml
  125. type: "config|noreplace"
  126. - src: var/entities/*
  127. dst: /etc/OliveTin/entities/
  128. type: "config|noreplace"
  129. - src: var/manpage/OliveTin.1.gz
  130. dst: /usr/share/man/man1/OliveTin.1.gz
  131. - id: openrc
  132. maintainer: James Read <contact@jread.com>
  133. description: OliveTin is a web interface for running Linux shell commands.
  134. homepage: https://github.com/OliveTin/OliveTin
  135. license: AGPL-3.0
  136. formats:
  137. - apk
  138. bindir: /usr/local/bin/
  139. file_name_template: '{{ .PackageName }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'
  140. contents:
  141. - src: var/openrc/OliveTin
  142. dst: /etc/init.d/OliveTin
  143. - src: webui/
  144. dst: /var/www/olivetin/
  145. type: tree
  146. - src: config.yaml
  147. dst: /etc/OliveTin/config.yaml
  148. type: "config|noreplace"
  149. - src: var/entities/*
  150. dst: /etc/OliveTin/entities/
  151. type: "config|noreplace"
  152. - src: var/manpage/OliveTin.1.gz
  153. dst: /usr/share/man/man1/OliveTin.1.gz
  154. release:
  155. extra_files:
  156. - glob: ./dist/OliveTin-windows-amd64.msi
  157. footer: |
  158. ## Container images (from GitHub)
  159. - `docker pull ghcr.io/olivetin/olivetin:{{ .Version }}`
  160. ## Container images ([on Docker Hub](https://hub.docker.com/r/jamesread/olivetin/tags?page=1&ordering=last_updated))
  161. - `docker pull docker.io/jamesread/olivetin:{{ .Version }}`
  162. ## Upgrade warnings, or breaking changes
  163. - No such issues between the last release and this version.
  164. ## Useful links
  165. - [Which download do I need?](https://docs.olivetin.app/install/choose_package.html)
  166. - [Ask for help and chat with others users in the Discord community](https://discord.gg/jhYWWpNJ3v)
  167. Thanks for your interest in OliveTin!