.goreleaser.yml 4.7 KB

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