Files
dtourolleandClaude Opus 5.5 b0c067ed41
🏗️ Build Plugin / build (push) Successful in 1m15s
Nightly Build / nightly-build (push) Failing after 1m14s
🧪 Test Plugin / test (push) Successful in 40s
Add a Docker test harness for any Jellyfin version
test-image.sh publishes the plugin on the host, bakes it into a stock
jellyfin/jellyfin image via Dockerfile.test, and runs it on :8096, with
optional egress through a LAN gateway (DOCKER_GATEWAY, e.g. the Swiss
VPN box) for geo-blocked streams.

JELLYFIN_TAG (default 12) selects the image and the matching plugin
build: 10.9/10.10 -> net8.0, 10.11 -> net9.0, 12 -> net10.0, with the
generated meta.json targetAbi to match. Images are tagged per version
(srfplay-test:<tag>) so several can coexist.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 01:44:34 +02:00

24 lines
996 B
Docker

# Test image: stock Jellyfin with a prebuilt SRF Play plugin baked in.
#
# This does NOT build the plugin — build it first on the host (fast, warm
# NuGet cache), then this image is just one small COPY on top of stock
# Jellyfin, so it builds in seconds.
#
# ./test-image.sh # builds plugin + image, runs it
#
# or manually:
# dotnet publish Jellyfin.Plugin.SRFPlay/Jellyfin.Plugin.SRFPlay.csproj \
# -c Release -f net10.0 --no-self-contained -o ./.test-plugin/SRFPlay
# docker build -f Dockerfile.test --build-arg JELLYFIN_TAG=12 -t srfplay-test .
# docker run --rm -p 8096:8096 srfplay-test
#
# JELLYFIN_TAG must match the framework the plugin was published for;
# test-image.sh picks both from one setting.
ARG JELLYFIN_TAG=12
FROM jellyfin/jellyfin:${JELLYFIN_TAG}
# .test-plugin/SRFPlay is produced by test-image.sh and contains the plugin
# DLL plus a generated meta.json. Jellyfin loads from <config>/plugins.
COPY .test-plugin/SRFPlay /config/plugins/SRFPlay