Add support for arbitrary framework version detect

Adds a system to build.py which can automatically determine which
version of each upstream framework (.NET, NodeJS, others in the future)
a given HEAD is at in the submodules, and provide that build argument
into the Docker builds.

This will ensure we can reliably build versions on either side of a
framework version transition (i.e. both stable and master) without any
manual work.

For an explanation of how it works, see the comments in `build.yaml`.

Future code framework updates will need the `build.yaml` updated to
include the relevant (merge) commit hash and version.

Also adds better logging, including this new framework version as well
as a record of the Docker build commands for each build.
This commit is contained in:
Joshua M. Boniface
2024-11-21 13:57:42 -05:00
parent 67d680a3aa
commit 0717e31d66
2 changed files with 177 additions and 7 deletions

View File

@@ -1,6 +1,26 @@
---
# 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 upsteam 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: