mirror of
https://github.com/navidrome/navidrome.git
synced 2025-12-23 23:18:05 -05:00
build: new pipeline, new way to cross-compile and build docker images locally. (#3383)
* refactor(ci): faster pipeline, add support for darwin/arm64 (#26) * feat: WIP * feat: WIP - all except windows * fix: Bump crazymax/osxcross to 14.5 * feat: bundle UI * fix: works on all 10! * fix: WIP * fix: add git sha and tag * fix: download taglib from cross-taglib * feat: add more dependabot coverage * feat: build JS bundle using Docker * refactor: pipeline * fix: wip * fix: wip * fix: wip * fix: wip * fix: wip * fix: wip * fix: wip * fix: wip * fix: wip * fix: real * fix: no container * fix: no container * fix: pkg-config * fix: pkg-config * fix: pkg-config * fix: pkg-config * fix: pkg-config * fix: add lint * fix: add lint * fix: add lint * fix: add lint * fix: add lint * fix: add lint * fix: add js * fix: gittags * fix: gittags * test: is_release * test: is_release * test: is_release * test: push image * test: push image * test: push image * test: push image * test: push image * test: push image * test: push image * test: push image * test: push image * fix: extract download taglib action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: extract prepare docker action * fix: add msi * fix: add msi * fix: add msi * fix: add msi * fix: add msi * test: full * test: full * test: disable some platforms to avoid hitting the rate limit * test: disable some platforms to avoid hitting the rate limit * fix: use ecr.aws for base images * test: full release * test: full release * fix: clean-up * refactor: pipeline clean-up (#32) * fix: clean-up * fix: clean-up * fix: clean-up * fix: fetch all tags * fix: version * fix: version * fix: no need to setup QEMU * fix: don't try to push images in unauthorized branches * fix: check push enabled * fix: change layout?
This commit is contained in:
88
release/goreleaser.yml
Normal file
88
release/goreleaser.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
# GoReleaser config
|
||||
project_name: navidrome
|
||||
version: 2
|
||||
|
||||
builds:
|
||||
- id: navidrome
|
||||
# Instead of compiling the binary with goreleaser, we just copy it from `binaries` folder
|
||||
# This is because we need to compile the binaries with our Dockerfile, and to avoid having to
|
||||
# compile it twice, we just copy the docker build output.env. The xxgo script handles this for us
|
||||
gobinary: "./release/xxgo"
|
||||
|
||||
# All available targets compiled by the Dockerfile
|
||||
targets:
|
||||
- darwin_amd64
|
||||
- darwin_arm64
|
||||
- linux_386
|
||||
- linux_amd64
|
||||
- linux_arm_v5
|
||||
- linux_arm_v6
|
||||
- linux_arm_v7
|
||||
- linux_arm64
|
||||
- windows_386
|
||||
- windows_amd64
|
||||
|
||||
archives:
|
||||
- format_overrides:
|
||||
- goos: windows
|
||||
format: zip
|
||||
|
||||
checksum:
|
||||
name_template: "{{ .ProjectName }}_checksums.txt"
|
||||
|
||||
snapshot:
|
||||
version_template: "{{ .Tag }}-SNAPSHOT"
|
||||
|
||||
release:
|
||||
draft: true
|
||||
mode: append
|
||||
footer: |
|
||||
**Full Changelog**: https://github.com/navidrome/navidrome/compare/{{ .PreviousTag }}...{{ .Tag }}
|
||||
|
||||
## Helping out
|
||||
|
||||
This release is only possible thanks to the support of some **awesome people**!
|
||||
|
||||
Want to be one of them?
|
||||
You can [sponsor](https://github.com/sponsors/deluan), pay me a [Ko-fi](https://ko-fi.com/deluan) or [contribute with code](https://www.navidrome.org/docs/developers/).
|
||||
|
||||
## Where to go next?
|
||||
|
||||
* Read installation instructions on our [website](https://www.navidrome.org/docs/installation/).
|
||||
* Reach out on [Discord](https://discord.gg/xh7j7yF), [Reddit](https://www.reddit.com/r/navidrome/) and [Twitter](https://twitter.com/navidrome)!
|
||||
|
||||
# Add the MSI installers to the release
|
||||
extra_files:
|
||||
- glob: binaries/navidrome_386.msi
|
||||
name_template: navidrome_{{.Version}}_windows_386_installer.msi
|
||||
- glob: binaries/navidrome_amd64.msi
|
||||
name_template: navidrome_{{.Version}}_windows_amd64_installer.msi
|
||||
|
||||
changelog:
|
||||
sort: asc
|
||||
use: github
|
||||
filters:
|
||||
exclude:
|
||||
- "^test:"
|
||||
- Merge pull request
|
||||
- Merge remote-tracking branch
|
||||
- Merge branch
|
||||
- go mod tidy
|
||||
groups:
|
||||
- title: "New Features"
|
||||
regexp: '^.*?feat(\(.+\))??!?:.+$'
|
||||
order: 100
|
||||
- title: "Security updates"
|
||||
regexp: '^.*?sec(\(.+\))??!?:.+$'
|
||||
order: 150
|
||||
- title: "Bug fixes"
|
||||
regexp: '^.*?(fix|refactor)(\(.+\))??!?:.+$'
|
||||
order: 200
|
||||
- title: "Documentation updates"
|
||||
regexp: ^.*?docs?(\(.+\))??!?:.+$
|
||||
order: 400
|
||||
- title: "Build process updates"
|
||||
regexp: ^.*?(build|ci)(\(.+\))??!?:.+$
|
||||
order: 400
|
||||
- title: Other work
|
||||
order: 9999
|
||||
16
release/xxgo
Executable file
16
release/xxgo
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Use sed to extract the value of the -o parameter
|
||||
output=$(echo "$@" | sed -n 's/.*-o \([^ ]*\).*/\1/p')
|
||||
|
||||
# Ensure the directory part of the output exists
|
||||
mkdir -p "$(dirname "$output")"
|
||||
|
||||
# Build the source folder name based on GOOS, GOARCH and GOARM.
|
||||
source="${GOOS}_${GOARCH}"
|
||||
if [ "$GOARCH" = "arm" ]; then
|
||||
source="${source}_${GOARM}"
|
||||
fi
|
||||
|
||||
# Copy the output to the desired location
|
||||
cp binaries/"${source}"/navidrome* "$output"
|
||||
Reference in New Issue
Block a user