Files
jellyfin-packaging/build.yaml
2025-09-26 22:16:40 -04:00

148 lines
4.0 KiB
YAML

---
# Build definitions for `build.py`
# Upstream Framework versions
# This section defines target commits after which a particular framework is required.
# This is used by build.py to automatically determine which framework version to use
# within the build containers based on whatever HEAD the project is at (from checkout.py).
# Target commits should be a merge commit!
# Target commits should be in order from oldest to newest!
# HOW THIS WORKS:
# For each submodule, and then for each upstream framework version ARG to Docker...
# Provide a commit hash as a key, and a version as a value...
# If the given commit is in the commit tree of the current HEAD of the repo...
# Use the given version. Otherwise use the default.
frameworks:
jellyfin-web:
NODEJS_VERSION:
6c0a64ef12b9eb40a7c4ee4b9d43d0a5f32f2287: 20 # Default
jellyfin-server:
DOTNET_VERSION:
6d1abf67c36379f0b061095619147a3691841e21: 8.0 # Default
ceb850c77052c465af8422dcf152f1d1d1530457: 9.0
# DEB packages
debian:
releases:
bullseye: '11'
bookworm: '12'
trixie: '13'
archmaps:
amd64:
PACKAGE_ARCH: amd64
GCC_ARCH: x86-64
arm64:
PACKAGE_ARCH: arm64
GCC_ARCH: aarch64
cross-gcc:
bullseye: '10'
bookworm: '12'
trixie: '14'
build_function: build_package_deb
dockerfile: debian/docker/Dockerfile
imagename: jellyfin-builder-debian
ubuntu:
releases:
focal: '20.04'
jammy: '22.04'
noble: '24.04'
archmaps:
amd64:
PACKAGE_ARCH: amd64
GCC_ARCH: x86-64
arm64:
PACKAGE_ARCH: arm64
GCC_ARCH: aarch64
cross-gcc:
focal: '10'
jammy: '12'
noble: '13'
build_function: build_package_deb
dockerfile: debian/docker/Dockerfile
imagename: jellyfin-builder-ubuntu
# Portable archives
linux:
build_function: build_linux
archivetypes: targz,tarxz
archmaps:
amd64:
DOTNET_ARCH: x64
PACKAGE_ARCH: amd64
amd64-musl:
DOTNET_ARCH: musl-x64
PACKAGE_ARCH: amd64-musl
arm64:
DOTNET_ARCH: arm64
PACKAGE_ARCH: arm64
arm64-musl:
DOTNET_ARCH: musl-arm64
PACKAGE_ARCH: arm64-musl
dockerfile: portable/Dockerfile
imagename: jellyfin-builder-linux
windows:
build_function: build_windows
archivetypes: zip
archmaps:
amd64:
DOTNET_ARCH: x64
PACKAGE_ARCH: amd64
arm64:
DOTNET_ARCH: arm64
PACKAGE_ARCH: arm64
dockerfile: portable/Dockerfile
imagename: jellyfin-builder-windows
macos:
build_function: build_macos
archivetypes: tarxz
archmaps:
amd64:
DOTNET_ARCH: x64
PACKAGE_ARCH: amd64
arm64:
DOTNET_ARCH: arm64
PACKAGE_ARCH: arm64
dockerfile: portable/Dockerfile
imagename: jellyfin-builder-macos
portable:
build_function: build_portable
archivetypes: targz,tarxz,zip
dockerfile: portable/Dockerfile
imagename: jellyfin-builder-portable
# Docker images
docker:
build_function: build_docker
archmaps:
amd64:
DOTNET_ARCH: x64
IMAGE_ARCH: amd64
PACKAGE_ARCH: amd64
QEMU_ARCH: x86_64
TARGET_ARCH: amd64
arm64:
DOTNET_ARCH: arm64
IMAGE_ARCH: arm64v8
PACKAGE_ARCH: arm64
QEMU_ARCH: aarch64
TARGET_ARCH: arm64/v8
dockerfile: docker/Dockerfile
imagename: jellyfin/jellyfin
# Nuget packages
nuget:
build_function: build_nuget
projects:
- Jellyfin.Data/Jellyfin.Data.csproj
- MediaBrowser.Common/MediaBrowser.Common.csproj
- MediaBrowser.Controller/MediaBrowser.Controller.csproj
- MediaBrowser.Model/MediaBrowser.Model.csproj
- Emby.Naming/Emby.Naming.csproj
- src/Jellyfin.Extensions/Jellyfin.Extensions.csproj
- src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj
- src/Jellyfin.MediaEncoding.Keyframes/Jellyfin.MediaEncoding.Keyframes.csproj
- src/Jellyfin.CodeAnalysis/Jellyfin.CodeAnalysis.csproj
feed_urls:
stable: https://api.nuget.org/v3/index.json
unstable: https://nuget.pkg.github.com/jellyfin/index.json