build: add packages for deb and rpm to release (#3202)

* support packing deb/rpm/archlinux

* .-.

* initial test

* fix postinstall, remove execstop

* bash -> sh, create toml manually if it doesn't exist (thanks debian)

* don't forget that newline

* postrm

* comments, contrib -> packaging/linux

* contrib > packaging in .goreleaser

* actually add toml

* openrc/sysv templates

* add apk. nothing else yet

* wait, we have a ntive uninstall

* fix: merge errors, move packaging to release

* chore: remove old goreleaser conf

* ci: remove `release` dependency on `docker push`

* ci: fix release version

* ci: upload packages

* ci: try to fix json file list

* ci: replace the json file list with a txt artifact

* postremove -> preremove, skip install/remove error

* actually do preremove

* better preremove

* ci: fix

* ci: fix?

* ci: clean-up

* ci: try to change labels and filenames

* ci: fix?

* ci: fix?

* ci: add `make package` target

* ci: make labels more readable

hope it doesn't break the pipeline again

* build: remove alpine and archlinux packages, for now.

---------

Co-authored-by: Deluan <deluan@navidrome.org>
This commit is contained in:
Kendall Garner
2024-10-26 17:31:45 +00:00
committed by GitHub
parent 69e2a6d620
commit 154e13f7c9
10 changed files with 235 additions and 10 deletions
+52
View File
@@ -33,6 +33,58 @@ checksum:
snapshot:
version_template: "{{ .Tag }}-SNAPSHOT"
nfpms:
- id: navidrome
package_name: navidrome
homepage: https://navidrome.org
description: |-
🎧☁ Your Personal Streaming Service
maintainer: Deluan Quintão <deluan at navidrome.org>
license: GPL-3.0
formats:
- deb
- rpm
dependencies:
- ffmpeg
suggests:
- mpv
overrides:
rpm:
dependencies:
- "(ffmpeg or ffmpeg-free)"
contents:
- src: release/linux/navidrome.toml
dst: /etc/navidrome/navidrome.toml
type: "config|noreplace"
file_info:
mode: 0644
owner: navidrome
group: navidrome
- dst: /var/lib/navidrome
type: dir
file_info:
owner: navidrome
group: navidrome
- dst: /opt/navidrome/music
type: dir
file_info:
owner: navidrome
group: navidrome
scripts:
preinstall: "release/linux/preinstall.sh"
postinstall: "release/linux/postinstall.sh"
preremove: "release/linux/preremove.sh"
release:
draft: true
mode: append