diff options
-rw-r--r-- | README.md | 16 | ||||
-rwxr-xr-x | build.py | 15 | ||||
-rw-r--r-- | build.yaml | 6 |
3 files changed, 7 insertions, 30 deletions
@@ -50,17 +50,17 @@ Inside this repository are 7 major components: 1. Submodules for the `jellyfin` (as `jellyfin-server`) and `jellyfin-web` repositories. These are dynamic submodules; the `checkout.py` script will check them out to the required `HEAD` on each build, and thus their actual committed value is irrelevant. Nonetheless, they should be bumped occasionally just to avoid excessive checkout times later. -2. Debian/Ubuntu packaging configurations (under `debian`). These will build the 3 Jellyfin packages (`jellyfin` metapackage, `jellyfin-server` core server, and `jellyfin-web` web client) from a single Dockerfile and helper script (`build.sh`) under `debian/docker/`. Future packages (e.g. Vue) may be added here as well if and when they are promoted to a production build alongside the others, following one consistent versioning scheme. +1. Debian/Ubuntu packaging configurations (under `debian`). These will build the 3 Jellyfin packages (`jellyfin` metapackage, `jellyfin-server` core server, and `jellyfin-web` web client) from a single Dockerfile and helper script (`build.sh`) under `debian/docker/`. Future packages (e.g. Vue) may be added here as well if and when they are promoted to a production build alongside the others, following one consistent versioning scheme. -3. Fedora/CentOS packaging configurations (under `fedora`). These will build the same packages as Debian. This is still a TODO. +1. Docker image builder (under `docker`). Like the above two as well, only building the combined Docker images with a single Dockerfile as well as preparing the various manifests needed to push these to the container repos. -4. Docker image builder (under `docker`). Like the above two as well, only building the combined Docker images with a single Dockerfile as well as preparing the various manifests needed to push these to the container repos. +1. Portable image builder (under `portable`), which covers all the "archive" builds (.NET portable, Linux, Windows, and MacOS) again from a single Dockerfile. -5. Portable image builder (under `portable`), which covers all the "archive" builds (.NET portable, Linux, Windows, and MacOS) again from a single Dockerfile. +1. Script infrastructure to handle coordinating builds (`build.py`). This script takes basic arguments and, using its internal logic, fires the correct Dockerized builds for the given build type. -6. Script infrastructure to handle coordinating builds (`build.py`). This script takes basic arguments and, using its internal logic, fires the correct Dockerized builds for the given build type. +1. NuGet package build infrastructure, to prepare NuGet packages for consumption by plugins and 3rd party clients. -7. The GitHub Actions CI to build all the above for every supported version and architecture. +1. The GitHub Actions CI to build all the above for every supported version and architecture. ## Design Decisions @@ -106,10 +106,6 @@ Inside this repository are 7 major components: This simplifies our builds as we do not need to then track many 9-month-only releases of Ubuntu, and also reduces the build burden. Users of non-LTS Ubuntu releases can use either the closest Ubuntu LTS version or use Docker containers instead. -### Fedora/CentOS Packages - -TODO - these have not yet been implemented. - ### Docker * Single unified Docker build: the entirety of our Docker images are built as one container from one Dockerfile. @@ -113,18 +113,6 @@ def build_package_deb( ) -def build_package_rpm( - jellyfin_version, build_type, build_arch, build_version, no_push=False -): - """ - Build a .rpm package (Fedora or CentOS) within a Docker container that matches the requested distribution version - """ - log(f"> Building an {build_arch} {build_type} .rpm package...") - log("") - - pass - - def build_linux( jellyfin_version, build_type, build_arch, _build_version, no_push=False ): @@ -522,13 +510,12 @@ def usage(): log(f" * Valid options are: {', '.join(configurations.keys())}") log(" BUILD_ARCH: The CPU architecture of the build") log(" * Valid options are: <empty> [portable/docker only], amd64, arm64, armhf") - log(" BUILD_VERSION: A valid OS distribution version (.deb/.rpm build types only)") + log(" BUILD_VERSION: A valid OS distribution version (.deb build types only)") # Define a map of possible build functions from the YAML configuration function_definitions = { "build_package_deb": build_package_deb, - "build_package_rpm": build_package_rpm, "build_portable": build_portable, "build_linux": build_linux, "build_windows": build_windows, @@ -39,12 +39,6 @@ ubuntu: jammy: '22.04' noble: '24.04' -# RPM packages (TODO) -centos: - build_function: build_package_rpm -fedora: - build_function: build_package_rpm - # Portable archives linux: build_function: build_linux |